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可能相同
//
...