4-7.cpp
来自「一个用友元函数实现运算符重载的例子」· C++ 代码 · 共 63 行
CPP
63 行
#include <iostream.h>
class complex
{
private:
double real; //复数的实部
double image; //复数的虚部
public:
complex(void):real(0),image(0){}
complex(double rp):real(rp),image(0){}
complex(double rp,double ip):real(rp),image(ip){}
~complex(){}
friend complex operator+( complex x1,complex x2);
friend complex operator-( complex x1,complex x2);
friend complex operator*( complex x1,complex x2);
friend complex operator/( complex x1,complex x2);
void print(void);
};
inline complex operator+( complex x1,complex x2)
{
complex temp;
temp=complex(x1.real+x2.real,x1.image+x2.image);
return temp;
}
inline complex operator-( complex x1,complex x2)
{
complex temp;
temp=complex(x1.real-x2.real,x1.image-x2.image);
return temp;
}
inline complex operator*( complex x1,complex x2)
{
complex temp;
temp=complex(x1.real*x2.real-x1.image*x2.image,x1.real*x2.image+x1.image*x2.real);
return temp;
}
inline complex operator/(complex x1,complex x2)
{
double m;
m=x2.real*x2.real+x2.image*x2.image;
return complex((x1.real*x2.real+x1.image*x2.image)/m,
(x1.image*x2.real-x1.real*x2.image)/m);
}
void complex::print(void)
{
cout<<"the complex is "<<real;
if(image>0)
cout<<"+" ; //iamge小于0,则自带-
if(image!=0)
cout<<image<<"i"<<endl;
}
void main()
{
complex a(3.3,5.8),b(2.9,8.6),c;
c=a+b;
c.print();
c=a-b;
c.print();
c=a*b;
c.print();
c=a/b;
c.print();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?