8.4.3 重载赋值运算符(3)

2013-10-07 16:07:45 · 作者: · 浏览: 69

8.4.3  重载赋值运算符(3)

从该程序的输出可以看出,一切都完全按照要求工作,两个对象的消息之间没有任何联系:
 

  1. motto2 contains -  
  2. Default message  
  3. motto2 contains -  
  4. The devil takes care of his own  
  5. motto1 now contains -  
  6. *******************************  
  7. motto2 still contains -  
  8. The devil takes care of his own  
  9. Destructor called.  
  10. Destructor called.  

由此得到另一条黄金规则:

如果需要给类的数据成员动态分配空间,则必须实现赋值运算符。

实现赋值运算符之后,在+=这样的操作中将发生什么事情呢?除非实现这样的运算符,否则它们不能工作。对于希望用来处理类对象的每种op=形式,都需要编写另一个运算符函数。