2014-12-02 119 views
1

問題:如何在一個向量中管理基類實例和派生類實例?

我有一個班,可以說,mainClass。現在我創建了兩個其他類並讓它們從基類繼承。因此,我想管理任何基類或繼承類的所有實例,並將它們存儲在一個向量中(例如,如果它不起作用,則不必是向量)。

std::vector<mainClass*>確實接受繼承類的所有實例,但我不能接取那些誰是新的繼承類聲明的函數,只有那些誰也都是基類的成員..

有什麼辦法,也許用模板來解決這個問題?或者我忽略了一些簡單的事情?

回答

0

繼承的目的是允許通過基類調用派生類的方法。爲此,基類將方法定義爲virtual。 如果您在派生類中定義所有需要在基類中調用virtual的方法,則可以通過mainClass*調用它們。

如果你不這樣做,你將不得不知道哪個實例是哪個類的,並按照它們的順序投射。

相關問題