簡體   English   中英

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

[英]How to manage base-class instances and derived-class instances in one vector?

問題:

我有一個類,可以說是mainClass 現在,我創建其他兩個類,並讓它們從基類繼承。

因此,我想管理任何基類或繼承類的所有實例,並將它們存儲在例如向量中(如果它不起作用,則不必是向量)。

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

有沒有辦法解決這個問題,也許有模板? 還是我忽略了一些簡單的事情?

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

如果不這樣做,則必須知道哪個實例屬於哪個類,並進行強制轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM