请耐心等待,我在 C++ 方面相对较新。
这是我的项目。我想从本质上创建一个简单的国际象棋游戏。
我有一个基类 gamePiece,我认为它最终会成为一个抽象类(但现在不是)
基类 gamePiece 中有一堆数据成员:colorOfPiece、rankOfPiece、fileOfPiece 等。它还有一个函数 void displayPieceInfo(),它通过 cout 在控制台上简单地显示所有这些值。
我计划从这个派生一些派生类。现在我有一个“车”子类。
我想在单个向量中添加各种类型的片段,以便稍后使用迭代器遍历它。
这是我遇到的问题。
vector<gamePiece> vectorOfAllGamePieces;
vector<gamePiece>::iterator itGamePieces;
我将 Rook 作为第一个元素推入向量中。所有的构造函数看起来都运行良好,正在初始化变量。然而,当我尝试在第一个元素上运行显示功能时,字符串为空/未初始化。
itGamePieces=vectorOfAllGamePieces.begin();
itGamePieces->displayPieceInfo();
如果我将通用 gamePiece 推入向量中,一切都会正确显示。
我什至可以有一个这样的向量与混合类型的对象 - 例如,派生类的对象,父类的对象,从同一个父类派生的第二个类的对象
如果是这样,你为什么认为数据成员的值没有正确显示,即使我已经在构造函数中设置了它们?