#include<iostream> using namespace std; class CComplex ...{ private: double m_real; double m_imag; friend istream &operator>>(istream& input, CComplex &complex) ...{ cout<<"input real and imag:"<<endl; input>>complex.m_real >>complex.m_imag ; return input; } friend ostream &operator<<(ostream& output, const CComplex &complex) ...{ output<<complex.m_real; if(complex.m_imag >0) ...{ cout<<"+"; } cout<<complex.m_imag <<"i"<<endl; return output; } public: CComplex() ...{ m_real=0; m_imag=0; } CComplex(double real) ...{ m_real=real; m_imag=0; } CComplex(double real,double imag) ...{ m_real=real; m_imag=imag; } void display(); const CComplex operator+(CComplex &); const CComplex operator-(CComplex &); const CComplex operator*(CComplex &); const CComplex operator/(CComplex &); }; void CComplex::display () ...{ cout<<"("<<m_real<<","; cout<<m_imag<<"i)"<<endl; } const CComplex CComplex::operator+(CComplex &rightNumber) ...{ CComplex resultNumber; resultNumber.m_real = m_real+rightNumber.m_real; resultNumber.m_imag = m_imag+rightNumber.m_imag; return resultNumber; } const CComplex CComplex::operator-(CComplex &rightNumber) ...{ CComplex resultNumber; resultNumber.m_real = m_real-rightNumber.m_real; resultNumber.m_imag = m_imag-rightNumber.m_imag; return resultNumber; } const CComplex CComplex::operator*(CComplex &rightNumber) ...{ CComplex resultNumber; resultNumber.m_real = (m_real*rightNumber.m_real)-(m_imag*rightNumber.m_imag); resultNumber.m_imag = (m_real*rightNumber.m_imag)+(m_imag*rightNumber.m_real); return resultNumber; } const CComplex CComplex::operator/(CComplex &rightNumber) ...{ CComplex resultNumber; resultNumber.m_real = ((m_real*rightNumber.m_real)+(m_imag*rightNumber.m_imag))/((rightNumber.m_real*rightNumber.m_real)+(rightNumber.m_imag*rightNumber.m_imag)); resultNumber.m_imag = ((m_real*rightNumber.m_imag)+(m_imag*rightNumber.m_real))/((rightNumber.m_real*rightNumber.m_real)+(rightNumber.m_imag*rightNumber.m_imag)); return resultNumber; } int main() ...{ int c1real,c1imag,c2real,c2imag; cout<<"请输入复述C1的实部:"<<endl; cin>>c1real; cout<<"请输入复述C1的虚部:"<<endl; cin>>c1imag; cout<<"请输入复述C2的实部:"<<endl; cin>>c2real; cout<<"请输入复述C2的虚部:"<<endl; cin>>c2imag; CComplex c1(c1real,c1imag); CComplex c2(c1real,c1imag); cout<<"C1+C2="<<c1+c2<<endl; cout<<"C1-C2="<<c1-c2<<endl; cout<<"C1*C2="<<c1*c2<<endl; cout<<"C1/C2="<<c1/c2<<endl; return 0; } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/marine_lich/archive/2008/05/15/2449832.aspx