请编写复制构造函数和赋值运算符在C++中需要执行的任务列表,以保证异常安全,避免内存泄漏等.
首先要确保你真的需要支持副本.大部分时间情况并非如此,因此禁用两者是可行的方法.
有时,您仍然需要在多态层次结构中为类提供重复,在这种情况下:禁用赋值运算符,编写(受保护的?)复制构造函数,并提供虚拟clone()函数.
否则,在你写一个价值类的情况下,你又回到了Coplien的正交规范形式的土地上.如果你有一个不能轻易复制的成员,你需要提供一个拷贝构造函数,一个析构函数,一个赋值运算符和一个默认构造函数.这个规则可以改进,例如:"大二法则"
我还建议看一下有关赋值运算符的C++ FAQ,以及复制和交换习惯用语以及GOTW.