我四处寻找,似乎为了实现这一点,我需要更改我的基类,并想知道这是不是最好的方法。例如,我有一个基类:
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) {}
}
假设基类和Derived_x类的复制构造函数编码正确,那么为DeepCopy编写复制构造函数的最佳方式是什么?我们如何知道我们要复制的对象的basePtr中的类?
我能想到的唯一方法就是使用RTTI,但是使用一长串dynamic_casts似乎是不正确的。此外,它还要求DeepCopy了解基类的继承层次结构。
我看到的另一种方法是here。但它要求基类和派生类实现一个clone方法。
那么,有没有一种更简单、更标准的方法来做到这一点呢?
https://stackoverflow.com/questions/12255546
复制相似问题