1. 复制每一个成分
“复制每一个成分”: 当你编写一个copying函数,请确保(1)复制所有local成员变量,(2)调用所有base classes内的适当的copying函数。
2. 防止copying函数重复
由于copy构造函数是构造一个新对象,assignment操作符只施行于己初始化对象身上,所有两者不能相互调用。
建立一个新的成员函数给两者调用。这样的函数往往是private而且常被命名为init。这个策略可以安全消除copy构造函数和copy assignment操作符之间的代码重复。
3. 结论
1)Copying函数应该确保复制“对象内的所有成员变量”及“所有base class成分”。
2)不要尝试以某个‘opying函数实现另一个copying函数。应该将共同机能放进第三个函数中,并由两个copying函数共同调用。