我四处搜索,似乎为了执行此操作,我需要更改我的 Base 类并想知道这是否是最好的方法。例如,我有一个基类:
class Base {}
然后是一长串派生类:
class Derived_1:: public Base {}
class Derived_2:: public Derived_1{}
...
...
class Derived_n:: public Derived_M{}
然后我有另一堂课:
class DeepCopy
{
Base * basePtr;
public:
DeepCopy(DeepCopy & dc) {}
}
假设 Base 类和 Derived_x 类的复制构造函数编码正确,那么为 DeepCopy 编写复制构造函数的最佳方法是什么。我们如何知道要复制的对象的 basePtr 中的类?
我能想到的唯一方法是使用 RTTI,但使用一长串 dynamic_casts 似乎不正确。此外,它需要 DeepCopy 了解 Base 类的继承层次结构。
我看到的另一种方法是here。但它需要 Base 和 Derived 类实现克隆方法。
那么有没有更简单、更标准的方法呢?