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

Я начал программировать на С++ несколько месяцев назад, и теперь я пытаюсь закодировать эту игру Tic Tac Toe в объектно-ориентированном стиле, однако у меня возникли проблемы с вызовом функции-члена, скажем, просто ради аргумента , класс 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);

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

Как я могу это решить? Что не так ? Любая помощь приветствуется! Благодарю вас!


person The Incredible Code Man    schedule 14.01.2014    source источник


Ответы (1)


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

A a;
a.setA(nB, cChar);
person simonc    schedule 14.01.2014
comment
Хорошо, но что, если я не претендую на создание этого экземпляра объекта A в функции-члене B::makePlay(int), а вместо этого хочу создать его в функции main()? - person The Incredible Code Man; 14.01.2014
comment
В этом случае вам нужно будет передать экземпляр A в B::makePlay. (В качестве альтернативы вы можете дать B член типа A и использовать его) - person simonc; 14.01.2014