【发布时间】:2019-09-08 11:14:57
【问题描述】:
我想不出一个不言自明的简短标题,这是我的问题。 我有一个基类(Piece)和派生类(Pawn)。为了创建 Piece 对象,我使用参数调用派生类的构造函数。它工作正常。但是现在,我正在定义另一个名为 Board 的类,并且该类将包含 Piece 对象数组。 问题是,我想创建一个 Board 对象,但不知道如何在其中正确初始化基类对象。因为我曾经使用派生类构造函数初始化基类对象,但现在我没有那个选项。 Board类的构造函数怎么写?
class Piece {
public:
Coordinates coor;
whose color;
Piece(Coordinates a, enum whose c, char n);
};
class Pawn : public Piece {
public:
Pawn(Coordinates a, enum whose c, char n) :Piece(a, c, n){}
};
class Board {
private:
Piece node[32];
public:
Board(); //How to write the constructor?
void show_board();
};
【问题讨论】:
-
我不认为 Board 是 Pieces 的矩阵 - 如果有的话,它是 Squares 的矩阵。另外,为什么是 9x9?
-
@NeilButterworth 你是对的。我的错。我应该创建正方形矩阵。无论如何,我仍然想在一个 Board 对象中创建 32 Piece 对象。问题保持不变:) 我编辑了问题,而不是矩阵,现在有一个包含 32 个元素的一维数组。而 9x9 只是一种偏好,还有一些未使用的位。也许我将来会改变它。
标签: c++ oop inheritance constructor