目前我有这个
是否有可能在构造函数中用for循环声明2d数组类成员?
//gameboard.h
class GameBoard
{
public:
GameBoard(bool showShips);
~GameBoard();
void draw();
void placeShipStart(int x, int y);
void placeShipEnd(int ship, int x, int y);
private:
bool defaultShowShips;
Field playerBoard[10][10];
vector<Ship*> ships[5];
};
//gameboard.cpp
GameBoard::GameBoard(bool showShips)
{
defaultShowShips = showShips;
for (int i = 0; i < 10; i++)
for (int j = 0; j < 10; j++)
{
xyzCoord ul, lr;
ul.x = j * 5.0f;
ul.y = i * 5.0f;
ul.z = 2.0f;
lr.x = j * 5.0f + 5.0f;
lr.y = i * 5.0f + 5.0f;
lr.z = 0.0f;
playerBoard[i][j] = Field(ul, lr);
}
};
它是现在它告诉我,我需要有字段的默认构造函数的方式。我试图完成在不同的位置初始化每个位置。我完全错了吗?我已经看到了向量的矢量方法。如果可能的话,我想避免这种情况,因为它以前不适合我。
我们可以请看看你的'Field'类吗?当它表示**默认构造函数**时,它表示在构造函数声明中声明的所有变量必须提供**默认**值。我看到你的'Field'构造函数至少有2个'xyzCoord'类型的参数。因此,要么在参数列表中提供默认值(我可以在看到您的课程时向您显示)。或者添加第二个不带参数的构造函数。 –
如果不使用默认构造函数,是不可能启动这些值的?就像我可以分配空间,然后分别构建每个空间? –
查看我的更新回答。看到xyzCoord的构造函数会有所帮助。 –