条款12:复制对象时勿忘其每一个成分

结论1:Copying函数应该确保复制“对象内的所有成员变量”及“所有base class成分”。

Copying函数指copy构造函数和copy assignment操作符,任何时候只要为class添加一个成员变量,或者class继承自另一个base class,则应该确保(1)复制所有local成员变量,(2)调用所有base class内适当的copying函数。

结论2:不要尝试以某个copying函数实现另一个copying函数。应该将共同机能放进第三个函数中,并由两个copying函数共同调用。

令copy assignment操作符调用copy构造函数就像试图构造一个已存在的对象,令copy构造函数调用copy assignment操作符就像在一个尚未初始化的对象身上做“只对已初始化对象才有意义”的事一样。消除重复代码的做法是建立一个新的成员函数供两者调用。

你可能感兴趣的:(Effective,C++学习笔记)