我记得在Java中看到过一些clone()用法,现在我在一些C++代码中注意到了它。我也在SX.com上注意到了它们:
Copying a Polymorphic object in C++
使用克隆方法是一个“好主意”吗?还是应该复制副本?
最佳答案
复制构造函数只能复制他们知道的数据成员-不包括它们可能嵌入的任何派生对象中的数据成员。如果class X
的copy构造函数用于通过X*
或X&
复制对象地址,但是实际的运行时数据对象是具有其他数据成员的派生类型,则这是一个问题。virtual clone
方法是一种合适的解决方案,让派生的类指定用于复制该类型对象的代码。
如果您仍然看不到好处,则应继续阅读。设计和多态性,那么对此的需求应该开始变得清晰起来。
关于c++ - 拥有clone()方法是 'Good Thing'吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24801205/