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

来源:互联网 发布:梁咏琪 胆小鬼 知乎 编辑:程序博客网 时间:2024/05/02 14:10

结论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操作符就像在一个尚未初始化的对象身上做“只对已初始化对象才有意义”的事一样。消除重复代码的做法是建立一个新的成员函数供两者调用。

0 0
原创粉丝点击