复数加减的运算规则是将两个复数的实部和虚部分别加减,因此需要重载+和-两个二元运算符。对于二元运算符,建议使用友元函数的方式重载。
class Complex{
private:
int real;
int imag;
public:
Complex(int r,int i):real(r),imag(i){}
friend Complex operator+(Complex com1,Complex com2);
friend Complex operator-(Complex com1,Complex com2);
void print();
};
Complex operator+(Complex com1,Complex com2)
{return Complex(com1.real+com2.real,com1.imag+com2.imag);}
Complex operator-(Complex com1,Complex com2){
return Complex(com1.real-com2.real,com1.imag-com2.imag);}
void Complex::print(){
if(imag==0){
cout<<real<<endl;
}else if(imag>0){
cout<<real<<"+"<<imag<<"i"<<endl;
}else{
cout<<real<<"-"<<imag<<"i"<<endl;
}
}