我有以下问题:
我有一个类应该完成这个功能:
Obj o;
Obj o1(o), o1=o; // deep-copies
const Obj c(o), c=o; // deep-copies
const Obj c1(c), c1=c; // shallow-copies
Obj o2(c), o2=c; // deep-copies
我如何做到不继承而实现此功能? (我的意思是,否则我会让 Const_obj 继承 Obj。)
编辑:
直接使用 o.clone() 不是一个选项,因为这样我可能会通过意外地 没有 克隆而轻易引入错误。
编辑:
最后,有一个适当的、完整的解决方案,利用了 Scott Meyers 的 Effective C++ 中的思想进行惰性求值。 请查看我的回答。