【发布时间】:2016-12-30 21:12:49
【问题描述】:
我正在制作一个国际象棋游戏,我正在布置课程。有一个基本的 Piece 类,并分离 Rook、Bishop、Knight、Pawn、King 和 Queen 类来继承它是有意义的。构造函数需要的唯一参数是布尔“所有者”值(它将是基类的成员):玩家为 true,AI 为 false。我认为对象应该像这样实例化:
//create a Rook owned by the player
Rook exampleRook = new Rook(true);
//create a Knight owned by the AI
Knight exampleKnight = new Knight(false);
看来我必须在 each 派生类中做这样的事情:
Rook(bool owner) {
this->owner = owner;
}
这似乎违反了继承的整个原则:在基类中编写一次代码,然后继承。我可能必须在基类中编写一个 setOwner() 函数,但在构造函数中设置所有者似乎更有意义,而不是在单独的函数中(可以再次调用)。
【问题讨论】:
-
您的代码看起来像 Java。你确定它是C++?如果是,请搜索“继承构造函数”。
-
1.继承构造函数,2. 成员初始化列表
标签: c++ inheritance