Bug*_*ter 3 c++ polymorphism inheritance class
假设您有以下课程:
class Parent
{
// methods and members go here
};
Run Code Online (Sandbox Code Playgroud)
然后根据父级创建一个子级:
class Child : public Parent
{
public:
someFunction();
};
Run Code Online (Sandbox Code Playgroud)
现在 Parent 类没有 someFunction() 但 Child 类有。假设您有一个父类向量,并且您想调用子类的方法,假设向量包含父类和子类的实例,因为它们都是相同的基类型。
std::vector<Parent> myContainer;
myContainer.push_back(a parent);
myContainer.push_back(a child);
myContainer[1].someFunction();
Run Code Online (Sandbox Code Playgroud)
我怎样才能使这项工作?我基本上是在尝试创建一个父母的向量,但孩子们也会进入这个向量。我想调用一个儿童专用的方法。那可能吗?
您创建一个对象向量Parent。这里不存在多态性。向量包含值。如果你想要一个多态容器,你必须使用其他东西。
就像你所做的那样
Parent myObject;
Run Code Online (Sandbox Code Playgroud)
不管你myObject以后做什么,它仍然是一个Parent。即使你这样做了myObject = Child()。