c++ PP第十一章最后一题

题目是运算符重载:
直接看代码:
complex.h

class Complex0
{
public:
	Complex0(double d_real, double d_imaginary);
	Complex0();

	

	Complex0 operator+(const Complex0 &com1)const;
	Complex0 operator-(const Complex0 &com1)const;
	Complex0 operator*(const Complex0 &com1)const;

	Complex0 operator~()const;

	Complex0 operator*(double d_value)const;

	friend ostream &operator<<(ostream &os,const Complex0 &com1);
	friend bool operator>>(istream &os, Complex0 &com1);

private:
	double m_real;
	double m_img;
};

complex.cpp

Complex0::Complex0(double d_real, double d_imaginary)
{
	m_real = d_real;
	m_img = d_imaginary;
}

Complex0::Complex0()
{
}

Complex0 Complex0::operator+(const Complex0 & com1) const
{
	Complex0 com2;
	com2.m_real = m_real + com1.m_real;
	com2.m_img = m_img + com1.m_img;
	return com2;
}

Complex0 Complex0::operator-(const Complex0 & com1) const
{
	Complex0 com2;
	com2.m_real = m_real - com1.m_real;
	com2.m_img = m_img - com1.m_img;
	return com2;
}

Complex0 Complex0::operator*(const Complex0 & com1) const
{
	Complex0 com2;
	com2.m_real = m_real*com1.m_real- m_img * com1.m_img;
	com2.m_img = m_real * com1.m_img+m_img*com1.m_real;
	return com2;
}

Complex0 Complex0::operator~() const
{
	Complex0 com2;
	com2.m_real = m_real;
	com2.m_img = -m_img;
	return com2;
}

Complex0 Complex0::operator*(double d_value) const
{
	Complex0 com2;
	com2.m_real = m_real * d_value;
	com2.m_img = m_img * d_value;
	return com2;
}

ostream &operator<<(ostream  &os, const Complex0 & com1)
{
	os << "(" << com1.m_real << "," << com1.m_img << "i" << ")" << endl;
	return os;
}

bool operator>>(istream & os, Complex0 &com1)
{
	os >> com1.m_real >> com1.m_img;
	return true;
}

main.cpp

Complex0 a(3.0, 4.0);
	Complex0 c;
	cout << "Enter a complex number (q to quit):\n";
	while (cin >> c)
	{
		cout << "c is " << c << endl;
		cout << "complex conjugate is " << ~c << endl;
		cout << "a is " << a << "\n";
		cout << "a + c is" << a + c << '\n';
		cout << " a - c is" << a - c << '\n';
		cout << "a * c is" << a * c << '\n';
		cout << "2 * c is" << c*2<< '\n';
	}
	return 0;

运行效果图:
在这里插入图片描述
喜欢的记得点个赞哦。。

最近有博客之星的活动,大家到这里帮我点个评分,谢谢了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加油小杜(接qt定制功能,单模块开发等)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值