我正在開發一個遊戲項目,我的隊友有一定的方法來解決我們的參考問題,並且它的效果很好,除非遊戲很大時,我們最終會有大量的構造函數。在構造函數中初始化引用
class Player
{
private:
Weapon *w1, *w2, *w3;
Armor *a1, *a2;
public:
Player(Weapon *w1, Weapon *w2, ...) : w1(w1), w2(w2), ...;
}
然後我的構造is Player(w1, w2, w3, ...);
這是令人不安的,如果有什麼播放器類有100個參考?
有沒有辦法讓這個語法更簡單,還是我們做錯了?有沒有更好的方法來引用玩家類以外的變量?
重要事項 以上只是一個例子,寫得很差。我不只有武器和盔甲。我有很多課程。我有一個開發者控制檯引用,我有armor引用,項目,我有調試類的引用,記錄類,然後列表繼續。矢量對我沒有幫助。對不起,這個不好的例子。
如果您需要傳遞數十個(或更多)參數,那麼您最有可能做錯了什麼。讓構造函數將成員變量初始化爲一個合理的默認值,然後改變那些真正需要修改的元素。 –
至於這種情況下,你考慮過['std :: vector'](http://en.cppreference.com/w/cpp/container/vector)而不是謹慎的變量嗎?如果你使用繼承,那麼無論類型如何,對於* all *設備都可以有單個向量。 –
最後的評論,只是挑剔,但在C++中,你不是初始化引用,你正在初始化*指針*。 C++中的引用有些不同。 –