#include<iostream>
#include<string>
using namespace std;
class person {
public:
int age;
int height;
//运算符重载函数 operator,这个operator是c++帮我们取的,相当于任何人取的任何名字的统一
//这里是函数重载版本的运算符重载,还有一种是全局函数的运算符重载
// 成员函数运算符重载的本质调用是 p1.operator+(p2);
//person operator+(person &p) {
// person temp;
// temp.age= this->age + p.age;
// temp.height =this->height+ p.height;
// return temp;
//}
};
void test1() {
person p1;
p1.age = 10;
p1.height = 100;
person p2;
p2.age = 8;
p2.height = 100;
//person p3 = p1 + p2; //运算符不知道这样到底要如何相加,需要运算符重载函数
//cout << "p3的age:" << p3.age << "p3的height:" << p3.height << endl;
}
//全局函数的运算符重载
person operator+(person& p1, person& p2) {
person temp;
temp.age = p1.age + p2.age;
temp.height = p1.height + p2.height;
return temp;
}
int main() {
test1();
person p1;
p1.age = 11;
p1.height = 110;
person p2;
p2.age = 12;
p2.height = 120;
//全局函数运算符重载的本质是 person4 = operator+(p1,p2);
//不论是全局的还是成员的运算符重载,都可以直接写成 person p4 = p1+p2
person p4 = p1 + p2;
//使用全局函数的运算符重载一样可以正常输出
cout << "p4的age:" << p4.age << "p4的height:" << p4.height << endl;
}
最后修改:2022 年 12 月 05 日
© 允许规范转载