c++ 构造函数重定义 + 运算符重载、流重载

#include<iostream>
using namespace std;

class Complex
{
public:												//构造函数的重载
	Complex(){real=0;imag=0;}							//默认的初始化
	Complex(double r){real=r;imag=0;}					//缺省的初始化
	Complex(double r,double i){real=r;imag=i;}			//完全的初始化

	friend Complex operator + (Complex c1,Complex c2);	//运算符重定义
	friend ostream& operator << (ostream&,Complex&);	//输出流重定义
	friend istream& operator >> (istream&,Complex&);	//输入流重定义

	void display(Complex &);

private:
	double real;
	double imag;
};

Complex operator + (Complex c1,Complex c2)
{
	return Complex(c1.real+c2.real,c1.imag+c2.imag);
}

ostream& operator << (ostream& output,Complex& c)
{
	output <<"(";
	if(c.real!=0)
	{
		cout<<c.real;
		if(c.imag>0)
			cout<<"+"<<c.imag<<"i)";
		else if(c.imag<0)
			cout<<c.imag<<"i)";
		else cout<<")";
	}
	else
	{
		if(c.imag!=0)
			cout<<c.imag<<"i)";
		else cout<<0;
	}
	return output;
}

istream& operator >> (istream& input,Complex& C)
{
	cout<<"Please input the Complex number:";
	input>>C.real>>C.imag;
	return input;
}

void Complex::display(Complex &c1)				//复数显示
{
	cout<<"The Complex number is:"<<c1<<endl;
}

int main()
{
	Complex c1(1,2),c2(2,1),c3,c4;
	c1.display(c1);
	c1.display(c2);
	c1.display(c1+c2);
	c3=c1+2.5;
	c1.display(c3);
	c1.display(2+c2);

	cin>>c4;
	cout<<c4<<endl;

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值