//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;
}
c++primer第六版第十一章第七题
最新推荐文章于 2024-07-15 15:17:48 发布