请教C++primer中的指针型句柄
在讲到这一部分时,在Sales_item.h句柄类中有这样的一个函数Sales_item(const Item_base& item):
p(item.clone()),use(new size_t(1)){}
在Item_base.h中有
virtual Item_base* clone() const
{ return new Item_base(*this);}
我想问的是,这里Item_base中为什么要在clone函数中返回*this的副本,为什么不改为
virtual Item_base* clone() const
{ return this;}
然后用clone函数的返回值初始化Sales_item.h中的p指针成员,请详细说明一下