因为并不知道实际使用时拿的是一个 Base 还是 Child,有的地方会用 Base* 去调用,有的会用 Child* 去调用
Base *p;
p->Clone() // 它返回Base*
Child *q;
q->Clone() // 期望它直接给出的Child*,而不是返回一个Base*,然后需要我再cast成Child*
【 在 ziqin (子青|会挽雕弓如满月|西北望|射天狼) 的大作中提到: 】
: 我不是很明白这种接口设计的意义在什么地方?
: 如果在使用的时候,拿的是Child的object,Clone直接定义在Child里就可以,不需要virtual,无非每个Child类不要忘记定义Clone就是了
: 如果在使用的时候,拿的是Base的object,怎么可能返回一个unique_ptr<Child>的指针?Base类中本来就不会含有Child的信息
: ...................
--
FROM 113.66.217.*