【发布时间】:2012-05-14 15:56:19
【问题描述】:
我有以下类的关系。我想克隆派生类,但我收到错误“无法实例化抽象类”。如何克隆派生类?谢谢。
class Base {
public:
virtual ~Base() {}
virtual Base* clone() const = 0;
};
class Derived: public Base {
public:
virtual void func() = 0;
virtual Derived* clone() const {
return new Derived(*this);
}
};
【问题讨论】:
-
这会做什么?克隆本质上是对象级操作。没有具体的对象,你怎么知道要克隆什么?