我正在拼字游戏项目。在这个项目中,我有一个瓦片类,它包含一个int值,用于字母的分数和游戏中瓦片的数量。这是_tile类。我可以在另一个班级初始化班级吗?
我的代码中的另一个类是tile_pool类。它应该有26个字母和空白瓷砖的27个瓷砖类。不幸的是,当我编译我的代码时,我总是得到“错误:数字常量之前的预期标识符”。
class Tile {
int count;
int score;
public:
_tile(int , int);
};
_tile::_tile(int _count = 0, int _score = 0): count(_count) , score(_score) {
}
class Pool{
Tile A(9,1);
... (the rest of the letters)
};
我环顾四周,发现Initialize a class object inside the other class constructor 所以我尝试做了名为_TILE对象默认的构造函数,但并没有改变错误。我还发现,当我把第14行放到我的主要功能中时,没有任何问题。我还尝试初始化Tile,然后使用set_values函数为tile设置计数和分数,但这也不起作用。
void set_values(int _count, int _score) {
count = _count;
score = _score;
}
而在tile_pool功能:
返回的 “错误: 'A' 没有指定类型”
我不明白为什么我不能初始化在我的tile_pool类中有一个Tile,但我可以在我的主类中。任何帮助表示赞赏!谢谢。
编辑:谢谢你的答案!我编辑了代码以更好地遵循指导原则,并改变了我按照建议声明我的课程的方式。我也改变了我的解决方案:
class Pool {
Tile a = Tile(9,1);
};
请发表[MCVE。没有行号。 'typedef class _tile {...} Tile;'是一个C-ism,在C++中我们编写'class Tile {...};'。 – Barry