Effective C++ (第三版)
当你编写一个copying函数,请确保
(1)复制所有local成员变量;
(2)调用所有base classes内的适当的copying函数。
令copy assignment操作函数调用copy构造函数是不合理的,因为这就像是图构造一个已经存在的对象。反方向,令copy构造函数调用copy assignment操作符同样无意义。如果你发现你的copy构造函数和copy assignment操作符有相近的代码,消除重复代码的做法是,建立一个新的成员函数给两者调用。这样的函数往往是private而且被命名为init。这个测率可以安全消除copy构造函数和copy assignment操作符之间的重复代码。