2013-12-15 210 views
0

的寫作實現我寫一個子類的構造函數時..子類的構造函數

在我的計劃遇到了一個有點路障我有一個entity類描述了遊戲中的通用對象。它擁有一切會有的成員,比如位置,精靈形象,對象名等。

有一個叫做creature的子類,它繼承了entity,描述了遊戲中的任何一種生物/物體,玩家,怪物,你有什麼。

entity.h有構造函數:

entity(int a, int b, int c, string n, char d),明確地在(a,b,c)與名稱n和顯示字符d創建實體。

creature繼承entity以及前述的構造函數。雖然它還有其他一些需要初始化的東西,也就是生物的統計數據需要自己的代碼塊來描述。

:。,creature.h具有構造:

creature(int a, int b, int c, string n, char d) : entity(a,b,c,n,d) { }

然而,當我去寫creature.cpp,並寫出實施此構造函數初始化的統計信息,我不能得到通過的「重新定義「/」以前定義的「錯誤。我的第一個猜測是刪除最後的括號,但後來我得到"expected { at end of input"。我發現的唯一臨時解決方案是在creature.h文件的{}中編寫實現,但這當然不是我想要在此觀察的做法。

這樣做的正確語法是什麼?我可以從周圍挖找到的唯一的例子寫在同一套代碼的定義和實現:/

回答

1

在類聲明creature,只是把這個:

creature(int a, int b, int c, string n, char d); 

然後在你的creature.cpp,放完整的東西:

creature::creature(int a, int b, int c, string n, char d) : entity(a,b,c,n,d) 
{ 
    // body of the constructor 
} 
+0

嗯,我確信我試過了!讓我再嘗試一次。 (我認爲決賽可能已經得到了我最好的) 更新:哦,好吧,那樣做了。非常感謝! – user2717676