【发布时间】:2015-11-06 07:08:41
【问题描述】:
我有一个Mammal 父类。
Dog、Cat、Lion 是子类。
我正在使用向量将所有子类保存为Mammal 对象
vector<Mammal> v;
并使用这一行将新对象附加到向量。
v.push_back(new Dog(Name, Blue, Owner));
显然它不起作用。 Error no instance of overload function 在编译期间被抛出给我。我是 C++ 新手,所以我不确定动态创建父类数组以保存所有子对象的正确方法是什么
【问题讨论】:
-
首先你应该阅读object slicing。其次,使用
new会产生一个指针,并且你有一个对象向量而不是指针向量。第三,在发布有关构建错误的问题时,请在问题中包含完整且未经编辑的错误输出。 -
与上一个问题相同:only 具有指针或引用的多态性。
标签: c++ object-slicing