📄 p343 10.2 运算符的重载.cpp
字号:
#include<iostream>
#include<cmath>
using namespace std;
class Complex
{
public:
Complex(float a=0,float b=0):real(a),imag(b){}
Complex operator+(Complex &a);
Complex operator-(Complex &a);
Complex operator*(Complex &a);
Complex operator/(Complex &a);
void display();
private:
float real;
float imag;
};
void Complex::display()
{ if(imag>0) cout<<real<<"+"<<imag<<"i"<<endl;
else if(imag<0) cout<<real<<"-"<<imag<<"i"<<endl;
else cout<<real<<endl;
}
Complex Complex::operator+(Complex &a)
{
return(Complex(a.real+real,a.imag+imag));
}
Complex Complex::operator-(Complex &a)
{
return(Complex(real-a.real,imag-a.imag));
}
Complex Complex::operator*(Complex &a)
{
Complex b;
float x,r;
x=sqrt(real*real+imag*imag)*sqrt(a.real*a.real+a.imag*a.imag);
r=atan(imag/real)+atan(a.imag/a.real);
b.real=x*cos(r);
b.imag=x*sin(r);
return b;
}
Complex Complex::operator/(Complex &a)
{
Complex b;
float x,r;
x=sqrt(real*real+imag*imag)/sqrt(a.real*a.real+a.imag*a.imag);
r=atan(imag/real)-atan(a.imag/a.real);
b.real=x*cos(r);
b.imag=x*sin(r);
return b;
}
int main()
{
Complex c1(3,4),c2(6,8),c3;
c1.display();
c2.display();
c3=c1+c2;
cout<<"c3=c1+c2"<<endl;
c3.display();
c3=c1-c2;
cout<<"c3=c1-c2"<<endl;
c3.display();
c3=c1*c2;
cout<<"c3=c1*c2"<<endl;
c3.display();
c3=c1/c2;
cout<<"c3=c1/c2"<<endl;
c3.display();
system("pause");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -