一.前言
如上
二.内容
题目:
定义一个复数类Complex,重载运算符“+”,“-”,“*”,“/”,使之能用于复数的加、减、乘、除。运算符重载函数作为Complex类的成员函数。编写程序,分别求两个复数之和、差、积和商。
三.代码
#include<iostream>
using namespace std;
class Complex{
public:
Complex(){
real=0;
imag=0;
}
Complex(double r,double i):real(r),imag(i){}
void display();//显示复数
Complex operator+(Complex &y);
Complex operator-(Complex &y);
Complex operator*(Complex &y);
Complex operator/(Complex &y);
private:
double real;//实根
double imag;//虚根
};
void Complex::display() {//显示复数
cout<<"("<<real<<","<<imag<<"i)";
}
Complex Complex:: operator+(Complex &y){//重载运算符+
return Complex(real+y.real,imag+y.imag);
}
Complex Complex:: operator-(Complex &y){//重载运算符-
return Complex(real-y.real,imag-y.imag);
}
Complex Complex:: operator*(Complex &y){//重载运算符*
Complex c;
c.real=real*y.real-imag*y.imag;
c.imag=real*y.imag +imag*y.real;
return c;
}
Complex Complex:: operator/(Complex &y){//重载运算符/
Complex c;
double flag;//判断标志
flag=y.real*y.real+y.imag*y.imag;
c.real=(real*y.real+imag*y.imag)/flag;
c.imag=(imag*y.real-real*y.imag)/flag;
return c;
}
int main(){
Complex c1(3,4),c2(5,-10),c3;
c3=c1+c2;
cout<<"c1+c2=";c3.display() ;
cout<<endl;
c3=c1-c2;
cout<<"c1-c2=";c3.display() ;
cout<<endl;
c3=c1*c2;
cout<<"c1*c2=";c3.display() ;
cout<<endl;
c3=c1/c2;
cout<<"c1/c2=";c3.display() ;
cout<<endl;
return 0;
}