【发布时间】:2010-10-03 16:23:00
【问题描述】:
假设我们有以下类层次结构:
class Base {
...
};
class Derived1 : public Base {
...
};
class Derived2 : public Base {
...
};
鉴于Base* 可以指向Derived1 或Derived2 对象,鉴于它的具体类型未知,我如何制作实际对象的副本。我想过定义复制构造函数,但如果不知道所涉及的实际类型,我认为这是不可能的。我能想到的唯一解决方案是在层次结构中的每种类型上定义一个clone() 方法。谁能想到更优雅的东西?
【问题讨论】:
标签: c++ inheritance polymorphism