C++ 从 parent 的 vector 中调用 child 的方法?

标签 c++ class inheritance polymorphism

假设您有以下类(class):

class Parent
{
   // methods and members go here
};

然后你基于父创建一个子:

class Child : public Parent
{
   public:
      someFunction();
};

现在 Parent 类没有 someFunction() 但 Child 类有。假设您有一个父类 vector ,并且您想要调用子类的方法,假设该 vector 包含父类和子类的实例,前提是它们都是相同的基类型。

std::vector<Parent> myContainer;
myContainer.push_back(a parent);
myContainer.push_back(a child);

myContainer[1].someFunction();

我怎样才能使这项工作?我基本上是在尝试创建一个 parent vector ,但 child 也会进入该 vector 。我想调用一个 child 专用的方法。这可能吗?

最佳答案

多态性只适用于指针和引用,所以如果你创建一个指针 vector ,那么它是可能的。

关于C++ 从 parent 的 vector 中调用 child 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30926577/

相关文章:

c++ - <iosfwd> header 是什么?

c++ - 当然有办法获得当前文件夹 View 的完整 View 下拉菜单吗?

c++ - QT:使用 QVariant 实现任意复杂的数据结构

c++ - vector 对循环中引用的明确影响

c# - 使用C#列表

c++ - 包含类文件后的错误消息(多个定义的符号)

sqlite - Android 中存在数据库问题的应用程序类

python - 使用多重继承保存 Django ModelForm

inheritance - 运行时的 Fortran TYPE 继承(由用户声明)

模板参数中的 C++ 继承