首页 > 解决方案 > 当我们不知道哪些类是时如何复制派生类?

问题描述

假设我们有这些类:

class BaseClass;//im an abstract base class!
class Derived1 : public BaseClass;
class Derived2 : public BaseClass;

两个类都继承自BaseClass,然后我们有一个指向 BaseClass 的指针向量

std::vector<BaseClass*> classes;

所以现在想象我想将向量实际复制它的元素复制到classes_copy. 所以我不希望 的指针指向classes_copyclasses. 我想创建(new用于分配,稍后我将释放它们)每个人的新版本。我们这里有一个问题:我们不知道指针是否指向BaseClassDerived1Derived2。那么,这可能吗?如果没有,该怎么办?有什么建议么?

标签: c++pointersinheritance

解决方案


推荐阅读