effectiveC++(十七)(五)

2010-12-26 23:20:34 · 作者: · 浏览: 4425
entity() == b->identity()的时候,它

们所指的对象是完全相同的。当然,必须自己来实现objectids的operator==。

别名和object identity的问题不仅仅局限在operator=里。在任何一个用到的函数

里都可能会遇到。在用到引用和指针的场合,任何两个兼容类型的对象名称都可能

指的是同一个对象。下面列出的是别名出现的其它情形:

class base {
  void mf1(base& rb);          // rb和*this可能相同                     
  ...

};

void f1(base& rb1,base& rb2);  // rb1和rb2可能相同
                               //

class derived: public base {
  void mf2(base& rb);          // rb和*this可能相同
                               //
  ...