复数类

#ifndef _COMPLEX_H_
#define _COMPLEX_H_
 
class Complex
{

public:
	Complex(double real,double imag):_real(real),_imag(imag)
	{
	};

	~Complex(){ };
	 
	void display();
	 
	Complex  operator+(const Complex& b);
	Complex operator+(double b);
	Complex&  operator+=(const Complex& b);
	Complex&  operator+=(double b);

	Complex  operator-(const Complex& b);
	Complex operator-(double b);
	Complex&  operator-=(const Complex& b);
	Complex&  operator-=(double b);

	Complex  operator*(const Complex& b);
	Complex operator*(double b);
	Complex&  operator*=(const Complex& b);
	Complex&  operator*=(double b);

	Complex  operator/(const Complex& b);
	Complex operator/(double b);
	Complex&  operator/=(const Complex& b);
	Complex&  operator/=(double b);


private:
	double _real;
	double _imag;
};




#endif
#include "complex.h"
#include <iostream>

using namespace std;


 

Complex Complex::operator+(double b)
{
	return Complex( _real+b, _imag);
}

Complex Complex::operator+(const Complex& b)
{
	 
	return Complex( _real+b._real, _imag+b._imag);
}

Complex& Complex::operator+=(const Complex& b)
{
	 _real=_real+b._real;
	 _imag=_imag+b._real;
	return *this;
}

Complex& Complex::operator+=(double b)
{
	 _real=_real+b;
	 
	return *this;
}

Complex Complex::operator-(double b)
{
	return Complex( _real-b, _imag);
}

Complex Complex::operator-(const Complex& b)
{
	 
	return Complex( _real-b._real, _imag-b._imag);
}

Complex& Complex::operator-=(const Complex& b)
{
	 _real=_real-b._real;
	 _imag=_imag-b._real;
	return *this;
}

Complex& Complex::operator-=(double b)
{
	 _real=_real-b;
	 
	return *this;
}

//

Complex Complex::operator*(double b)
{
	return Complex( _real*b, _imag);
}

Complex Complex::operator*(const Complex& b)
{
	 
	return Complex( _real*b._real, _imag*b._imag);
}

Complex& Complex::operator*=(const Complex& b)
{
	 _real=_real*b._real;
	 _imag=_imag*b._real;
	return *this;
}

Complex& Complex::operator*=(double b)
{
	 _real=_real*b;
	 
	return *this;
}

Complex Complex::operator/(double b)
{
	return Complex( _real/b, _imag);
}

Complex Complex::operator/(const Complex& b)
{
	 
	return Complex( _real/b._real, _imag/b._imag);
}

Complex& Complex::operator/=(const Complex& b)
{
	 _real=_real/b._real;
	 _imag=_imag/b._real;
	return *this;
}

Complex& Complex::operator/=(double b)
{
	 _real=_real/b;
	 
	return *this;
}

void Complex::display()
{
	cout<<_real<<"+"<<_imag<<"i"<<endl;
}

#include "complex.h"
 


int main()
{
	Complex c(1,2);
	Complex c1(1,2);
	double c2=7;
	c1+=3;
	c1+=c;
	Complex c3=c+c1;
	Complex c4(1,2);
	c1-=3;
	c1-=c;
	c3=c1-c2;
	c*=c1;
	c*=4;
	c/=c4;
	c=c1/4;
	c/=c2;
	
	 
	c.display();
	c1.display();
	c4.display();
	c3.display();

 



	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值