以复数的加法为例:用成员函数实现复数加法
#include <iostream>using namespace std;
class Complex
{
public:
Complex( )
{
real=0;
imag=0;
}
Complex(double r,double i)
{
real=r;
imag=i;
}
Complex add(Complex &c2);
void display( );
private:
double real;
double imag;
};
Complex Complex::add(Complex &c2)
{
Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
void Complex::display( )
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main( )
{
Complex c1(3,4),c2(5,-10),c3;
cout<<"c1=";
c1.display( );
cout<<"c2=";
c2.display( );
c3=c1.add(c2);
cout<<"c1+c2=";
c3.display( );
return 0;
}
运算符重载的方法
#include <iostream>using namespace std;class Complex{public: Complex( ) { real=0; imag=0; } Complex(double r,double i) { real=r; imag=i; } Complex operator+(Complex &c2); void display( );private: double real; double imag;};Complex Complex::operator+(Complex &c2){ Complex c; c.real=real+c2.real; c.imag=imag+c2.imag; return c;} void Complex::display( ){ cout<<"("<<real<<","<<imag<<"i)"<<endl;} int main( ){ Complex c1(3,4),c2(5,-10),c3,c4; cout<<"c1="; c1.display( ); cout<<"c2="; c2.display( ); c3=c1+c2; //c3=c1.operator+(c2); cout<<"c1+c2="; c3.display( ); return 0;}
实现operator+=(Complex &c2)?
#include <iostream>using namespace std;class Complex{public: Complex( ) { real=0; imag=0; } Complex(double r,double i) { real=r; imag=i; } Complex & operator += (const Complex & c); void display( );private: double real; double imag;};Complex & Complex::operator += (const Complex & c){ real += c.real; imag += c.imag; return *this;}void Complex::display( ){ cout<<"("<<real<<","<<imag<<"i)"<<endl;} int main( ){ Complex c1(3,4),c2(5,-10); c1+=c2; cout<<"c1="; c1.display(); return 0;}