C++ 运算符重载

重载的运算符是具有特殊名字的函数:它们的名字由关键字 operator和其后要定义的运算符号共同组成。

和其他函数一样,重载的运算符也包含返回类型,参数列表,以及函数体。

重载运算符函数的参数数量与该运算符作用的运算对象一样多。

一元运算符有一个参数,对于二元运算符来说,左侧运算对象传递给第一个参数,右侧运算对象传递给第二个参数。

如果一个运算符函数式成员函数,则它的第一个(左侧)运算对象绑定到隐式的this指针上,因此,成员函数的(显式)参数数量比运算符的运算对象总数少一个。

1.直接调用一个重载的运算符函数

//一个非成员运算函数的等价调用
data1 + data2;                 //普通表达式
operator+(data1,data2)     // 等价的函数调用

//调用成员运算符函数
data1 += data2;               
data1.operator += (data2);    //对成员运算符函数的等价调用
/*将this绑定到data1的地址,将data2作为实参传入了函数*/

 

posted @ 2018-05-09 22:16  卷积  阅读(166)  评论(0编辑  收藏  举报