class B {public: virtual B* clone() const { return new B; }};class D : public B {public: D* clone() const override { return new D; }};
复制代码
对于 smart pointer 是不支持的:
class B {public: virtual std::shared_ptr clone() const { return std::make_shared(); }};class D : public B {public: std::shared_ptr clone() const override { return std::make_shared(); }};