阿鑫来了  

运算符重载 :

函数名字为 : 关键字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)

 

posted on 2021-04-25 23:30  阿鑫来了  阅读(69)  评论(0)    收藏  举报