⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 complex1.cpp

📁 vc运算符重载,能对不同对象进行+
💻 CPP
字号:
#include<iostream.h>
#include<math.h>
#include"Complex.h"
Complex::Complex(double r1,double im)
{
	real=r1;
	imag=im;
}
/*int Complex::init(double r1,double im)
{
	real=r1;
	imag=im;
	return 0;
}
*/
void Complex::display()
{
	char sign;	
	if(imag<0) sign='-';
	else sign='+';
	cout<<real<<sign<<fabs(imag)<<'i'<<endl;
	/*if(imag<0)
		cout<<real<<"+(-"<<fabs(imag)<<")i"<<endl;
	else
		cout<<real<<"+"<<imag<<"i"<<endl;*/

	return;
}
/*Complex addcomplex(Complex& a,Complex& b,int s)
{
	Complex temp;
	if(s==1)
	{
		temp.real=a.real+b.real;
		temp.imag=a.imag+b.imag;
		return temp;
	}
	else if(s==2)
	{
		temp.real=a.real-b.real;
		temp.imag=a.imag-b.imag;
		return temp;
	}
	else if(s==3)
	{
		temp.real=a.real*b.real-a.imag*b.imag;
		temp.imag=a.real*b.imag+a.imag*b.real;
		return temp;
	}
	else if(s==4)
	{
		if(b.real==0&&b.imag==0)

			cout<<"输入的除数为0,输出的结果不正确"<<endl;
		else
		{
			double div=b.real*b.real+b.imag*b.imag;
			temp.real=(a.real*b.real+a.imag*b.imag)/div;
			temp.imag=(a.imag*b.real-a.real*b.imag)/div;
			return temp;
		}
	}
}*/
Complex operator + (Complex c1,Complex c2)
{

	return Complex(c2.real+c1.real,c2.imag+c1.imag);

}
Complex operator - (Complex c1,Complex c2)
{
	return Complex(c1.real-c2.real,c1.imag-c2.imag);
}
Complex operator*(Complex c1,Complex c2)
{

        Complex temp;
		temp.real=c1.real*c2.real-c1.imag*c2.imag;
		temp.imag=c1.real*c2.imag+c1.imag*c2.real;
		return temp;
	
}
Complex operator/(Complex c1,Complex c2)		
{
	Complex temp;
	if(c2.real==0&&c2.imag==0)

			cout<<"输入的除数为0,输出的结果不正确"<<endl;
		else
		{
			double div=c2.real*c2.real+c2.imag*c2.imag;
			temp.real=(c1.real*c2.real+c1.imag*c2.imag)/div;
			temp.imag=(c1.imag*c2.real-c1.real*c2.imag)/div;
			return temp;
		}
}
Complex &Complex::operator+=(Complex c2)
{
	*this=*this+c2;
	return *this;
}
Complex &Complex::operator*=(Complex c2)
{
	*this=*this*c2;
	return *this;
	    /*Complex temp;
		temp.real=this->real*c2.real-this->imag*c2.imag;
		temp.imag=this->real*c2.imag+this->imag*c2.real;
		this->real=temp.real;
		this->imag=temp.imag;
		
		return *this;*/

}
 Complex& Complex::operator++()//++前置
{
	//Complex temp=*this;
    real++;
	return *this;
	//return temp;
}
ostream&operator<<(ostream&dest,Complex source)
//输出流重载
{
	char sign='+';
	if(source.imag<0)
		sign='-';
	dest<<source.real<<sign<<fabs(source.imag)<<'i';
	dest<<endl;
	return dest;
}
Complex Complex::operator ++(int)//++后置
{
	Complex temp=*this;
	real++;
	return temp;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -