这个问题的核心实质在于此处返回值是有实际物理内存要求的。如果允许子类重写的函数返回不同类型,那有可能该类型的大小跟父类返回类型大小不同。
基于这个原因,标准里只有指针和引用才有可能covariance
除非将unique_ptr作为语言内置功能,否则以类库的身份是不行的。
【 在 DoorWay 的大作中提到: 】
: virtual unique_ptr<Child> Child::Clone() override;
: 最近有这种需求,子类提供克隆方法,返回自身类型的智能指针,不行。必须返回基类的智能指针?
: 这种一般怎么设计解决?
--
FROM 76.126.252.*