Проблема вызова функции-члена из другого объекта

0

Я начал кодирование в C++ несколько месяцев назад, и теперь я пытаюсь закодировать эту игру Tic Tac Toe в стиле OO, однако у меня возникли проблемы с вызовом функции-члена, скажем, ради ради аргумент, класс A через другую функцию-член из класса B.

Вот фрагмент кода, чтобы полностью очистить его:

#include <cstdio>
#include <cstdlib>
#include <iostream>

using namespace std;

class A
{
 private:

    char cBlocks[9];

 public:

    void setA(int nBlock, const char cCharacter)
    {
        cBlocks[nBlock] = cCharacter;
    }
};

class B
{
 private:

    char cB;

 public:

    char getB()
    {
        return cB;
    }

    void makePlay(int nB)
    {
        const char cChar = getB();

        A::setA(nB, cChar);
    }
};

Поэтому, когда я пытаюсь выполнить этот вызов, изнутри функции B :: makePlay (int):

A::setA(nB, cChar);

Отображается следующая ошибка: "Вызов нестатической функции-члена без аргумента объекта".

Как я могу это решить? Что не так? Вся помощь приветствуется! Спасибо!

Теги:
function
oop
member

1 ответ

3

Вы должны вызвать setA на экземпляре класса A

A a;
a.setA(nB, cChar);
  • 0
    Хорошо, но что, если я не притворяюсь, что создаю этот экземпляр объекта A в функции-члене B :: makePlay (int), и вместо этого я хочу создать его в функции main ()?
  • 0
    В этом случае вам нужно будет передать экземпляр A в B::makePlay . (В качестве альтернативы, вы могли бы дать B член типа A и использовать его)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню