为什么clone方法总是返回一个指针?

时间:2015-01-16 04:09:25

标签: c++

我正在阅读一些克隆c ++实现,它似乎总是定义为

Clonable* clone();

我想知道为什么总是返回一个指针;我可以定义一个克隆来返回一个Clonable对象吗?

1 个答案:

答案 0 :(得分:8)

  

我可以定义一个克隆来返回一个Clonable对象吗?

不确定。哎呀,你可以制作一个clone()方法来返回你想要的任何东西。我的猜测是,Clonable类应该以多态方式使用,clone()方法是virtual。指针(或引用)是C ++中运行时多态性的唯一选择。如果它没有返回指针,你会得到object slicing