成员函数加号运算符重载
#include<iostream>
using namespace std;
class Person
{
public:
Person() {
}
Person(int a,int b):m_A(a),m_B(b) {
}
//成员函数实现operator+运算符重载
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;
}
int m_A;
int m_B;
};
void test01()
{
Person p1(10, 10);
Person p2(20, 20);
Person p3;
//成员函数调用
//p3 = p1.operator+(p2);
p3 = p1 + p2;
cout << "p3.m_A=" << p3.m_A << endl;
cout << "p3.m_B=" << p3.m_B << endl;
}
int main()
{
test01();
return 0;
}
全局函数加号运算符重载
#include<iostream>
using namespace std;
class Person
{
public:
Person() {
}
Person(int a,int b):m_A(a),m_B(b) {
}
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 = p1.m_B + p2.m_B;
return temp;
}
void test01()
{
Person p1(10, 10);
Person p2(20, 20);
Person p3;
//全局函数调用
//p3 = operator+(p1, p2);
p3 = p1 + p2;
cout << "p3.m_A=" << p3.m_A << endl;
cout << "p3.m_B=" << p3.m_B << endl;
}
int main()
{
test01();
return 0;
}