假设我们有以下类层次结构:
class Base {
...
};
class Derived1 : public Base {
...
};
class Derived2 : public Base {
...
};
给定一个Base*
可以指向aDerived1
或Derived2
对象的a,鉴于它的具体类型未知,我如何制作实际对象的副本。我想过定义复制构造函数,但我认为如果不知道所涉及的实际类型,这是不可能的。我能想到的唯一解决方案是为层次结构中的每种类型定义一个clone()
方法。有人能想到更优雅的东西吗?