第十章第七题
#ifndef COMPLEX0_H_
#define COMPLEX0_H_
class complex
{
public:
complex();
~complex();
complex(const double n, const double m);
complex operator+(const complex& b)const;
complex operator-(const complex& b)const;
complex operator*(const complex& b)const;
complex operator*(double n)const;
complex operator~()const;
friend std::ostream& operator<<(std::ostream& os, const complex& b);
friend std::istream& operator>>(std::istream& is, complex& c);
private:
double x;
double y;
};
#endif // DEBUG
include<iostream>
#include"complex0.h"
complex::complex()
{
x = y = 0;
}
complex::~complex()
{
}
complex::complex(const double n, const double m)
{
x = n;
y = m;
}
complex complex::operator+(const complex& b)const
{
return complex(x + b.x, y + b.y);
}
complex complex::operator-(const complex& b)const
{
return complex(x - b.x, y - b.y);
}
complex complex::operator*(const complex& b)const
{
complex sum;
sum.x = x * b.x - y * b.y;
sum.y = x * b.y + y * b.x;
return sum;
}
complex complex::operator*(double n)const
{
return complex(x * n, y * n);
}
complex complex::operator~()const
{
return complex(x, -y);
}
std::ostream& operator << (std::ostream& os, const complex& b)
{
os << "(" << b.x << ", " << b.y << "i)";
return os;
}
std::istream& operator >> (std::istream& is,complex& c)
{
std::cout << "real: ";
if (!(is >> c.x))
return is;
std::cout << "imaginary: ";
is >> c.y;
return is;
}
#include <iostream>
#include"complex0.h"
using namespace std;
int main()
{
complex a(3.0, 4.0);
complex 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 " << c * 2 << '\n';
cout << "Enter a complex number (q to quit):\n";
}
cout << "Done!\n";
return 0;
}
2万+

被折叠的 条评论
为什么被折叠?



