Item 10:赋值运算符要返回自身的引用
赋值运算符应该返回自身的引用
赋值运算符可以穿成一串使用:
int x, y, z;
x = y = z = 15; 
并且赋值运算符是右结合的,所以,上面的赋值串可以解析为:
x=(y=(z=15));
这里的实现方法是让赋值返回一个引向它左侧参数的引用,而且这就是设计类时应该遵守的惯例:
class Widget {
public:
  ...
Widget& operator=(const Widget& rhs)  
{                                   
  ...
  return *this;                     
}
  ...
};
这个惯例适用于所有的赋值运算符,而不仅仅是上面的标准形式:
class Widget {
public:
  ...
  Widget& operator+=(const Widget& rhs   // the convention applies to
  {                                      // +=, -=, *=, etc.
   ...
   return *this;
  }
   Widget& operator=(int rhs)           
   {                                    
      ...                              
      return *this;
   }
   ...
};
总结
- 让赋值运算符返回一个引向 
*this的引用,以使能连续赋值。 

                
            
        
浙公网安备 33010602011771号