推 ric2k1:可以啊! 這就是 polymorphism. 12/15 21:05
不好意思,這次又想到另一個問題。
先前宣告的:
vector<CirGate*> _Index;
比方說儲存了:
AI_Gate* Gate1 = new AI_Gate;
_Index.push_back(Gate1);
現在想要用
AI_Gate* Gate2 = _Index[n];
//"n"是Gate1的儲存位置。
Gate2 -> Function();
//Function()是繼承CirGate後,唯獨在AI_Gate才有的Function。
這樣Compile會有錯誤耶~要怎麼修呢?
謝謝各位~!
※ 編輯: vepapuru 來自: 140.112.4.191 (12/17 10:07)
→ e124553423:那個function有在CirGate宣告成virtual嗎 12/17 10:29
→ vepapuru:可是我在CirGate* 宣告任何Virtual後 12/17 10:47
→ vepapuru:就無法在 CirGate* Gate1 = new CirGate; 了... 12/17 10:47
→ e124553423:cirGate裡沒有要用的話就需告成pure virtual吧 12/17 11:40
→ e124553423:不然就最起碼要一個空的函數定義 12/17 11:41
推 gamerred:看起來比較像dynamic_cast的問題 把指標轉回原本的型別就 12/18 01:15
→ gamerred:可以用了吧 12/18 01:15