我正在尝试编写一个简单的国际象棋游戏,它主要是多态性的练习。我应该创建一个抽象类棋子并从中继承棋子。现在,我决定对于每一个棋子,都应该有一些方法(非虚拟),比如getColor()和getRank() ,它们基本上做同样的事情,所以我认为在基础棋子中使用这些方法会更方便上课做作业。但我不确定是否有办法正确地做到这一点。我写了一些简单的测试代码,看看它是否工作,它编译没有问题,但输出肯定不正确。
所以我问,有没有办法做到这一点?
编辑:我的 test.cpp 代码
class Dad
{
public:
virtual void Void() =0;
bool biT;
bool getBit(){return biT;}
};
class Kid: public Dad
{
public:
void Void(){}
};
int main()
{
Dad* dP = new Kid;
cout<<dP->getBit();
}
输出类似于 197,而不是布尔值。