复数类

//复数类
#include<iostream>
using namespace std;


#pragma once


class Complex
{
public:
	void Display()
	{
		cout<<"real:"<<_real<<endl;
		cout<<"image:"<<_image<<endl;
	}
	// 带缺省值的构造函数
	Complex (double real = 0, double image = 0)
	{
		cout<<"带缺省值的构造函数"<<endl;
		_real = real;	
		_image = image;		


	}
	// 析构函数
	~Complex()
	{
		cout<<"~Complex()"<<endl;
	}
	// 拷贝构造函数
	Complex (const Complex& d)
	{
		cout<<"拷贝构造函数"<<endl;
		this->_real =d._real;	
		this->_image = d._image;
	}


	// 赋值运算符重载
	Complex& operator= (const Complex& d)
	{
		cout<<"赋值运算符的重载"<<endl;
		if(this != &d)
		{
			this->_real = d._real;
			this->_image = d._image;
		}
		return *this;	
	}


	void Display(double _real,double _image)
	{


		cout<<this->_real<<"-"<<this->_image<<endl;
	}


public:
	Complex& operator++()
	{
		cout<<"前置++"<<endl;
		++_real;
		return *this;
	}
	Complex operator++(int)
	{
		cout<<"后置++"<<endl;
		Complex tmp(*this);
		++_real;
		return tmp;
	}
	Complex& operator--()
	{
		cout<<"前置--"<<endl;
		--_real;
		return *this;
	}
	Complex operator--(int) //后置--
	{
		cout<<"后置--"<<endl;
		Complex tmp(*this);
		--_real;
		return tmp;
	}


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


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


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


private:
	double _real;		// 实部
	double _image;		// 虚部
};


int main()
{


	Complex c1(2.2,1.1);
	c1.Display();
	Complex c2(2.1,2.3);
	c2.Display();
	Complex c3 = c2;
	return 0;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值