2015-07-22 156 views
0

我有一個包含兩個不同類對象作爲成員的類。我想用另一個初始化一個成員,但到目前爲止,我似乎無法得到這個工作。使用另一個類成員初始化類成員C++

例如,Game game(&input);包含必須有指定類型的錯誤。我該如何去做這件事?

class KApp { 
private: 
    Input input; 
    Game game(&input); 

}; 


class Input { 
    Input() {}; 
}; 

class Game { 
private: 
    Input* input; 
public: 
    Game(Input & inp) : input(&inp) {} 
    Game(Input* inp) : input(inp) {} 
}; 

回答

1

嘗試這樣的事情

class KApp { 
private: 
    Input input; 
    Game game; 
    KApp() : game(&input) {} 
}; 

這是怎麼回事與Game game(&input);是,你聲明一個成員game,編譯器已經回升爲函數聲明,並抱怨說,沒有按參數沒有類型。

這樣,你明確地在KApp的構造函數中調用Game::Game(Input*)(在這一點上,輸入應該使用它的默認構造函數來初始化)。

編輯 - 輸入* VS輸入&

+0

知府。謝啦。我明白你在說什麼。我正在努力盡快完成。我應該這樣做,而不是在聲明類對象時調用類對象構造函數。我做了調整,它的工作。 – Chemistpp