1.类中重载+操作符
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Object { public: Object() { } Object(int a) { num = a; } Object operator + (const Object& a) //重载+操作符; { Object result; result.num = num + a.num; return result; } private: int num; }; int main(int argc, char * argv[]) { int a = 10; int b = 20; Object obja(a); Object objb(b); Object objc = obja + objb; system("pause"); return 0; }
2.重载全局操作符
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; class Object { friend Object operator + (const Object &a, const Object &b); public: Object() { } Object(int a) { num = a; } private: int num; }; Object operator + (const Object &a, const Object &b) { Object result; result.num = a.num + b.num; return result; } int main(int argc, char * argv[]) { Object obja(10); Object objb(20); Object objc = obja + objb; system("pause"); return 0; }
全局操作符,主要注意的是,当重载操作符访问私有成员时,需要将操作符声明为友元;