C++如何重载运算符
1、运算符重载通常会在结构体中使用因为自定义的结构体并没有运算符,所以我们需要运算符重载,给它定义运算符例如,小于号的重载是这样子的:bool operator < (type_name name){return 小于的判定方法;}其中,type_name是结构体名称,name是变量名称(随便起)在下图中,因为满足a.num>b.num(2>1)这个条件,所以a<b
2、再来举个例子,如图,因为 a.value<b.value,所以编译器认为a<b这时,小于号的判定与 name 无关,即无论 name 是什么,只要满足 a.value<b.value,那么 a 就小于 b两张图中的写法等价
3、重载四则运算符,例如“+”type_name operator + (type_name name){加法运算法则}如图,70=a.a+b.a=15+55,253=a.b+b.b=20+233
4、乘法和加法一样定义,来个加强版如图,880=a.a*b.a+b.a=15*55+5猱蝰逾鸾5,4893=a.b*b.芟鲠阻缒b+b.b=20*233+233通过运算符重载,我们也可以任意更改结构体四则运算的规则对比两张图,我们可以发现第二张图中的 "*" 相当于第一张图的 "+",第二张图中的 "+" 相当于第一张图中的 "*"3850=(a.a+b.a)*b.a=(15+55)*55,58949=(a.b+b.b)*b.b=(20+233)*233是不是很酷?
5、友元运算符重载和之前差不多,不过更容易理解5=a.a+b.b=1+4,6=a.b*b.a=2*3
6、运算符重载的意义重载运算符,能够让本来繁琐的程序变得简单,让代码模块化,更容易理解还有,有些STL容器必须定义小于号,所以当该容器存储元素类型为自定义的结构体时,就需要重载运算符,定义小于号,例如 set,priority_queue