如果你一定要这么搞,可以用一虚一实:
class Base {
protected:
virtual Base* CloneData();
public:
unique_ptr<Base> clone() { return {CloneData()}; }
};
class Derived {
protected:
Derived* CloneData() override;
};
【 在 DoorWay 的大作中提到: 】
: 为什么奇葩?是error-prone,还是过于精细?我听不出好坏哈
: 我调研了,希望构造函数可以virtual,是非分之想。
: 这种clone后,希望直接是Child type,调用Child 方法,还算合理的要求吧?
: ...................
--
FROM 76.126.252.*