我正在拼字遊戲項目。在這個項目中,我有一個瓦片類,它包含一個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