二、用C++实现复数结构

二、用C++实现复数结构,第1张

二、用C++实现复数结构

文章目录
  • 1、定义复数
  • 2、类外定义函数
  • 3、主调函数
  • THE END

1、定义复数
#include 

using namespace std;

typedef class Complex
{
	float realPart;
	float imagPart;
public:
	Complex() {}
	Complex(float real, float imag)
	{
		realPart = real;
		imagPart = imag;
	}
	float GetRealPart()
	{//获得实数部分
		return realPart;
	}
	float GetImagPart()
	{//获得虚数部分
		return imagPart;
	}
	void Add(float real, float imag);			//复数相加
	void Minus(float real, float imag);			//复数相减
	void Multiply(float real, float imag);		//复数相乘
	void Divide(float real, float imag);		//复数相除

	//运算符重载
	Complex operator + (Complex &c2)
	{
		Add(c2.GetRealPart(), c2.GetImagPart());
		return *this;
	}

	Complex operator - (Complex &c2)
	{
		Minus(c2.GetRealPart(), c2.GetImagPart());
		return *this;
	}

	Complex operator * (Complex &c2)
	{
		Multiply(c2.GetRealPart(), c2.GetImagPart());
		return *this;
	}

	Complex operator / (Complex &c2)
	{
		Divide(c2.GetRealPart(), c2.GetImagPart());
		return *this;
	}

}Cplx;//类重命名
2、类外定义函数
//类内声明,类外定义
void Complex::Add(float real, float imag)
{
	this->realPart += real;
	this->imagPart += imag;
}

void Complex::Minus(float real, float imag)
{
	this->realPart -= real;
	this->imagPart -= imag;
}

void Complex::Multiply(float real, float imag)
{
	this->realPart = this->realPart * real - this->imagPart*imag;//(ac-bd)
	this->imagPart = this->imagPart*real+this->realPart*imag;//(bc+ad)
}

void Complex::Divide(float real, float imag)
{
	this->realPart = (this->realPart * real + this->imagPart*imag)/(pow(real,2) + pow(imag,2));//(ac+bd)/(c^2+d^2)
	this->imagPart = (this->imagPart*real - this->realPart*imag)/(pow(real, 2) + pow(imag, 2));//(bc-ad)/(c^2+d^2)
}
3、主调函数
int main()
{
	Cplx c1 = Cplx(1,2);
	Cplx c2 = Cplx(4,5);

	Cplx res1 = c1 + c2;
	Cplx res2 = c1 - c2;
	Cplx res3 = c1 * c2;
	Cplx res4 = c1 / c2;

	cout << res1.GetRealPart() << "	" << res1.GetImagPart() << endl;
	cout << res2.GetRealPart() << "	" << res2.GetImagPart() << endl;
	cout << res3.GetRealPart() << "	" << res2.GetImagPart() << endl;
	cout << res4.GetRealPart() << "	" << res2.GetImagPart() << endl;


	return 0;
}
THE END

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5098070.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存