c++primer第六版第十一章第七题

//h文件
#pragma once
#include<iostream>
using namespace std;
class coplexx
{
	double x;
	double y;

public:
	coplexx() { x = 0; y = 0; };
	coplexx(double a, double b) { x = a, y = b; };
	coplexx operator+(const coplexx a)const;
	coplexx operator-(const coplexx a)const;
	coplexx operator*(const coplexx a)const;
	coplexx operator~()const;
	coplexx operator*(double a)const;
	friend coplexx operator*(double b,const coplexx a);

	friend ostream  &operator<<(ostream &os,const coplexx &a);
	friend istream  &operator>>(istream &is,  coplexx &a);
	~coplexx();
};


```cpp
//实现文件
#include "coplexx.h"

coplexx coplexx::operator+(const coplexx a)const
{
	return coplexx(x + a.x, y + a.y);

}
coplexx coplexx::operator-(const coplexx a)const
{
	return coplexx(x - a.x, y - a.y);
}
coplexx coplexx::operator*(const coplexx a)const 
{
	return coplexx(x*a.x - y * a.y, x*a.y + y * a.x);

}
coplexx coplexx::operator~()const
{
	return coplexx(x, -y);

}
coplexx coplexx::operator*(double b)const
{
	return coplexx(x*b, y*b);
}

ostream  &operator<<(ostream &os, const coplexx &a)
{
	os << "(" << a.x << "," << a.y << "i)";
	return os;
 }
istream  &operator>>(istream &is, coplexx &a)
{
	cout << "enter a number:" << endl;
	cout << "real:";
	if (!(is >> a.x))
		return is;
	cout << "imaginary:";
	is >> a.y;
	return is;
	
}
coplexx operator*(double b, const coplexx a)
{
	return a * b;

}


coplexx::~coplexx()
{
}



```cpp//man文件
#include <iostream>
using namespace std;
#include "coplexx.h"

int main()
{
	coplexx a(3.0, 4.0);
	coplexx c;

	cout << "Enter a complex number (q to quit):\n";
	while (cin >> c)
	{
		cout << "c is " << c << '\n';
		cout << "complex conjugate is " << ~c << '\n';
		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 " << 2 * c << '\n';
		cout << "Enter a complex number (q to quit):\n";
	}
	cout << "Done!\n";
	return 0;
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值