转载:http://blog.chinaunix.net/uid-21411227-id-1826759.html
一、实例
1.用成员函数来重载“+”运算符
vi test.cpp
#include <iostream> using namespace std; class X{ int i; public: X(int ii=0){i=ii;} X operator +(const X &rx){ i+=rx.i; return X(i); } int GetI(){return i;} }; int main(){ X a(1),b(3); cout<<(a+b).GetI()<<endl; return 0; }g++ -o test test.cpp
./test
42.用类的友元函数来重载“+”运算符
vi test.cpp
#include <iostream> using namespace std; class Complex{ public: Complex(double r=0.0,double i=0.0){ real=r; image=i; } friend Complex operator+(const Complex&,const Complex&); void display(); private: double real; double image; }; Complex operator+(const Complex &c1,const Complex &c2){ return Complex(c1.real+c2.real,c1.image+c2.image); } void Complex::display(){ cout<<"("<<real<<","<<image<<"i)"<<endl; } int main(){ Complex c1(3,4),c2(5,-10),c3; c3=c1+c2; cout<<"c1=";c1.display(); cout<<"c2=";c2.display(); cout<<"c1+c2=";c3.display(); return 0; }g++ -o test test.cpp
./test
c1=(3,4i) c2=(5,-10i) c1+c2=(8,-6i)