比如我们想要进行对象相加:
#include<iostream> using namespace std; class Person { public: int a; int b; //通过成员函数重载加号运算符 Person operator+(Person& p) { Person tmp; tmp.a = this->a + p.a; cout << this->a<<p.a<<endl; tmp.b = this->b + p.b; cout << this->b << p.b<<endl; return tmp; } }; //通过全局函数重载 Person operator+(Person &p1,Person &p2){ Person tmp; tmp.a = p1.a+p2.a; tmp.b = p1.b+p2.b; return tmp; } void test() { Person p1; p1.a = 1; p1.b = 2; Person p2; p2.a = 3; p2.b = 4; Person p3; p3 = p1 + p2;
//p3=p1.operator+(p2);
//p3=operator+(p1,p2); cout << "p3的a=" << p3.a << endl; cout << "p3的b=" << p3.b << endl; } int main() { test(); system("pause"); return 0; }
输出:
需要注意的是运算符重载,也可以发生函数重载。