c++类的初创建(复数类)

<span style="font-size:18px;">#include<iostream>
using namespace std;
class  Complex
{
private:
	double _real;
	double _image	;
public:
	 Complex(double a=0.0,double b=0.0)
	{
		cout<<"constructing"<<endl;
		_real=a;
		_image=b;
	}
	~ Complex()
	{
		cout<<"destructing"<<endl;
	}
	 Complex(const Complex &p)
	{
		cout<<"copy constructing"<<endl;
		_real=p._real;
		_image=p._image;
	}
	 void display()
	 {
		 cout<<_real;
		 if(_image>0)cout<<"+";
			 if(_image!=0)cout<<_image<<"i"<<endl;



	 }
    Complex& operator++();
	Complex operator++(int);
	Complex& operator--();
	Complex operator--(int); //后置--

	Complex operator+(const Complex& c);
	Complex operator-(const Complex& c);

	Complex& operator-=(const Complex& c);
	Complex& operator+=(const Complex& c);

	Complex operator*(const Complex& c);
	Complex operator/(const Complex& c);
	

	

};
Complex Complex::operator +(const Complex& c)
{
	Complex tmp;
	tmp._real=_real+c._real;
	tmp._image=_image+c._image;
	return tmp;
}
Complex Complex::operator -(const Complex& c)
{
	Complex tmp;
	tmp._real=_real-c._real;
	tmp._image=_image-c._image;
	return tmp;
}
Complex Complex::operator *(const Complex& c)
{
	Complex tmp;
	tmp._real=_real*c._real-_image*c._image;
	tmp._image=_real*c._image+_image*c._real;
	return tmp;

}
Complex Complex::operator /(const Complex &c)
{
	Complex tmp;
	double t;
	t=1/(c._real*c._real+c._image*c._image);
	tmp._real=(_real*c._real+_image+c._image)*t;
	tmp._image=(_image*c._real+_real+c._image)*t;
	return tmp;

}
Complex& Complex::operator++() 
{
	this->_real++;
	this->_image++;
	return *this;
	/*Complex tmp;
	tmp._real=_real++;
	tmp._image=_image++;
	return tmp;//去掉引用*/
}
Complex& Complex::operator --()
{
	this->_real--;
	this->_image--;
	return *this;
}
Complex& Complex::operator+=(const Complex& c)
{
	//Complex tmp;

    _real=this->_real+c._real;
	_image=this->_image+c._image;
	return *this;
}
Complex& Complex::operator-=(const Complex& c)
{ 
	_real=this->_real-c._real;
	_image=this->_image-c._image;
	return *this;

}
Complex Complex ::operator++(int)
{
	Complex tmp(*this);
	this->_image++;
	this->_real++;
	return tmp;
}
Complex Complex ::operator--(int)
{
	Complex tmp(*this);
	this->_image--;
	this->_real--;
	return tmp;

}






int main()
{
	 Complex A(3,3);
	 Complex B(A);
	 Complex  C;
	 Complex D;
	 D=A*B;
	 C=A-B;
	 ++C;
	 C.display();
	 B.display();
	 D.display();
	 return 0;
}</span>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值