运算符重载的一个原则就是:与内置类型的运算符具有一致的性质。
对于赋值操作符,内置类型可以连锁赋值,即
x=y=z=1;
为了实现“连锁赋值”,赋值操作符必须返回一个reference指向操作符的左侧实参。
class A{
public:
A& operator=(const A& a)
{
...
return *this;
}
A& operator+=(const A& a)
{
...
return *this;
}
};即所有与赋值相关的运算都得这样做。
注意:由于要返回*this,所以赋值运算符只能重载为类的成员,而不能重载为友元!!!
本文介绍了C++中运算符重载的原则之一:确保与内置类型的运算符具有一致的行为。重点讲解了如何通过返回引用来自身来实现赋值运算符的连锁赋值,并强调了赋值运算符只能作为成员函数进行重载。
1435

被折叠的 条评论
为什么被折叠?



