8.4.3 重载赋值运算符(3)
从该程序的输出可以看出,一切都完全按照要求工作,两个对象的消息之间没有任何联系:
- motto2 contains -
- Default message
- motto2 contains -
- The devil takes care of his own
- motto1 now contains -
- *******************************
- motto2 still contains -
- The devil takes care of his own
- Destructor called.
- Destructor called.
由此得到另一条黄金规则:
如果需要给类的数据成员动态分配空间,则必须实现赋值运算符。
实现赋值运算符之后,在+=这样的操作中将发生什么事情呢?除非实现这样的运算符,否则它们不能工作。对于希望用来处理类对象的每种op=形式,都需要编写另一个运算符函数。