无法从另一个对象调用成员函数

时间:2014-01-14 17:31:13

标签: c++ function oop member

我几个月前开始使用C ++进行编码,现在我一直试图以OO方式编写这个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);

显示以下错误:“调用不带对象参数的非静态成员函数”。

我该如何解决这个问题?怎么了 ? 所有帮助表示赞赏!谢谢!

1 个答案:

答案 0 :(得分:3)

您需要在课程setA

的实例上调用A
A a;
a.setA(nB, cChar);