运算符重载 :
函数名字为 : 关键字operator后面接需要重载的运算符符号
函数原型 : 返回值类型 operator操作符(参数列表)
注意 :
1.不能通过连接其他符号来创建新的操作符 : 比如operator@ ;
2.重载操作符必须有一个类类型或者枚举类型的操作数 ;
3.用于内置类型的操作符 , 其含义不能改变 , 例如 : 内置的整形+ , 不能改变其含义 ;
4.作为类成员的重载函数时 , 其形参看起来比操作数数目少1成员函数的操作符有
一个默认类型this , 限定为第一个形参 ;
5.[ .* ] [ :: ] [ sizeof ] [ ?: ] [ . ] 以上5个运算符不能重载
成员函数都会有一个隐含的this指针,this始终指向运算符(从左向右)第一个参数的对象
运算符重载函数作为成员函数时 , 参数列表中显式定义的参数个数 , 需要
比实际的参数少一个 .
例 : bool operator==(const Date& d1,const Date& d2){}
是成员函数时 :
bool operator==(const Date& d){
return _y == d._y
&& _m == d._m
&& _d == d._d;
}
调用
if(operator==(d1,d2))
如果运算符重载不是成员函数 if(operator==(d1,d2))
常用简写形式 : if(d1==d2)

浙公网安备 33010602011771号