?? 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 + -