C++运算符重载
关于运算符重载
1 | Box operator+(const Box& b) |
this为运算符前对象,b为运算符后对象。
如:Box3 = Box1 + Box2;
Box1为this,Box2为b。
也由此可知,运算符重载中传入参数只能放于运算符后。
因此,对于想改变运算顺序的运算符重载,必须使用友元函数。
而使用友元函数时,也要注意:
当重载为成员函数时,会隐含一个this指针;当重载为友元函数时,不存在隐含的this指针,需要在参数列表中显示地添加操作数。
1 | Box operator+(const Box& b) |
this为运算符前对象,b为运算符后对象。
如:Box3 = Box1 + Box2;
Box1为this,Box2为b。
也由此可知,运算符重载中传入参数只能放于运算符后。
因此,对于想改变运算顺序的运算符重载,必须使用友元函数。
而使用友元函数时,也要注意:
当重载为成员函数时,会隐含一个this指针;当重载为友元函数时,不存在隐含的this指针,需要在参数列表中显示地添加操作数。