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 + -
显示快捷键?