[英]How would I store multiple classes within a variable, maybe a list? or vector? Polymorphism
我對 C++ 還是有點陌生,我不確定是否在列表中創建不同的實例。 在我的程序中,我有多個從基類繼承的類:
class Foo{
}
class Bar : public Foo {
}
class Fin : public Foo {
}
我面臨的問題是我需要用另一個替換一個以防萬一。 例如:
for (int i = 0; i < list/vector/? ; i++){
if (bar_i[i].destroyed()){
Fin fin_i = new Fin(); // in place of Bar
}
}
然后將占據 Bar(s) 位置。 我可以用什么來創建列表、向量或其他任何東西來創建多個類的實例?
您不能在標准容器中存儲不同類型(標准容器要求所有元素都屬於同一類型)。
但是,您可以使用多態並存儲指向父(公共)類型的指針。
您可能需要重新考慮您的設計並將常用方法和成員移至父類型。
編輯 1:示例實現
std::vector<Foo *> container;
for (unsigned int i = 0; i < 6; ++i)
{
if (i & 1)
{
container.push_back(new Bar);
}
else
{
container.push_back(new Fin);
}
}
for (unsigned int i = 0; i < 6; ++i)
{
container[i]->Common_Operation();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.