让operator=返回*this的引用
要完成如 a = b =c 这样的操作所以返回值不能为void,对这个表达式,编译器的理解为 a = (b = c),所以operator=可以返回左值或者右值,但有时候我们也需要这样的操作 (a = b) = c ,b赋值给a,然后c赋值给a。所以operator=应该返回右值。、
由此分析,我们得到operator=的函数声明为 T & T::operator=(const T &)。
假设我们传入的参数为a,则a为const T & 类型,与返回类型不符,所以不能作为返回值。
如果我们去掉参数的const,首先,这样不安全,函数内部可能改变传入的参数,其次对于一些字符串字面量,其实质仍为const。
所以我们只能返回*this的引用。