运算符重载(c++)

              运算符重载的应用,计算两个复数的和。

        

#include<iostream>
using namespace std;
//类体**********************
class Complex
{
public:
	//无参构造函数赋初始值
	Complex()             
	{
		real = 0;
		imag = 0;
	}
	//有参构造函数
	Complex(double r,double i)   
	{
		real = r;
		imag = i;
	}
	//声明重载运算符 + 的函数
	Complex operator + (Complex &c2);
	//声明重载运算符 - 的函数
	Complex operator - (Complex &c2);
	void display();
	void GetComplex();
private:
	double real;
	double imag;

};
//**************************
Complex Complex::operator +(Complex &c2)  //operator + 是一个函数名,是Complex的成员函数
{
	Complex c;            //创建一个对象c
	c.real = real + c2.real;        //调用 c1+c2的时候,相当于c1.operator + (c2),即以c2为实参调用c1的运算重载符函数进行求值
	c.imag = imag + c2.imag;
	return c;
}
//*************************
Complex Complex::operator -(Complex &c2)
{
	Complex c;            //创建一个对象c
	c.real = real - c2.real;
	c.imag = imag - c2.imag;
	return c;
}
//***************************
void Complex::display()
{
	if(imag>0)
	cout<<real<<"+"<<imag<<"i"<<endl;
	else
		cout<<real<<imag<<"i"<<endl;

}
//***************************
void Complex::GetComplex()
{
	cin>>real>>imag;
}
//主函数***********************
int main()
{
	Complex c1,c2,c3,c4;
	cout<<"请分别输入第一个复数的实部与虚部:"<<endl;
	c1.GetComplex();
	cout<<"请分别输入第二个复数的实部与虚部:"<<endl;
	c2.GetComplex();
	c3=c1+c2;
	c4=c1-c3;
	cout<<"c1=";
	c1.display();
	cout<<"c2=";
	c2.display();
	cout<<"c1+c2=";
	c3.display();
	cout<<"c1-c3=";
	c4.display();
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章