什么是运算符重载?
运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型
对于个人而言,学到这里的感受就是,多了一种能够自定义方式来进行运算的方式吧,通过类似语法糖的效果operator+来自动实现相应的操作
+号运算符重载:
作用:实现两个自定义数据类型相加的运算
在+号运算符重载里面,我们可以通过两种方式来定义,一种是成员函数来实现,还有一种全局函数来实现
同样的调用方法也有两种,以下代码有体现
示例代码:
#include<iostream>
#include<string>
using namespace std;
class Person{
public:
//成员函数实现 + 号运算符重载
//Person operator+(Person &p1) {
// Person temp;
// temp.age = this->age + p1.age;
// return temp;
//}
public:
int age;
};
//全局函数 实现+号运算符重载
Person operator+(Person &p1, int val) {
Person temp;
temp.age = p1.age + val;
return temp;
}
int main() {
Person p1;
p1.age = 20;
//Person p2 = p1.operator+(p1); //调用方式有两种,这是第一种
Person p2 = p1 + 10;//这是第二种调用方式
cout << p2.age << endl;
system("pause");
return 0;
}
总结1:对于内置的数据类型的表达式的的运算符是不可能改变的
总结2:不要滥用运算符重载