#include<iostream>
using namespace std;
#include <string.h>
class Person {
public:
//Person operator+(Person& p) {//通过成员函数实现 + 号运算符重载
// Person temp;
// temp.m_A = this->m_A + p.m_A;
// temp.m_B = this->m_B + p.m_B;
// return temp;
//}
public:
int m_A;
int m_B;
};
Person operator+(Person &p1, Person &p2) {//通过全局函数实现 + 号运算符重载
Person temp;
temp.m_A = p1.m_A + p2.m_A;
temp.m_B = p2.m_B + p2.m_B;
return temp;
}
void test() {
Person p1;
p1.m_A = 10;
p1.m_B = 10;
Person p2;
p2.m_A = 10;
p2.m_B = 10;
/*Person p3 = p1.operator+(p2)*/;//成员函数调用本质
/*Person p3 = p1 + p2;*/
Person p3 = operator+(p1, p2);//全局函数调用本质
cout <<"p3.m_A="<< p3.m_A << endl;
cout << "p3.m_B="<<p3.m_B << endl;
}
int main() {
test();
system("pause");
return 0;
}
本文详细介绍了如何在C++中通过成员函数和全局函数的方式重载Person类的加法运算符('+'),并展示了实例代码,包括创建Person对象、运算符应用及结果输出。
1327

被折叠的 条评论
为什么被折叠?



