几个月前我开始用 C++ 编写代码,现在我一直在尝试以面向对象的方式编写这个 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);
显示以下错误:“调用没有对象参数的非静态成员函数”。
我该如何解决这个问题?怎么了 ? 感谢所有帮助!谢谢!
最佳答案
您需要在 A
类的实例上调用 setA
A a;
a.setA(nB, cChar);
关于c++ - 无法从另一个对象调用成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21120030/