大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←
问题:
解答:
main.cpp
#include <iostream>
#include "complex0.h"
using namespace std;
int main()
{
complex a(3.0, 4.0);
complex c;
cout << "请输入一个复数(q结束):" << endl;
while (cin>>c)
{
cout << "c is " << c << endl;
cout << "c的共轭为:" << ~c << endl;
cout << "a is " << a << endl;
cout << "a+c is " << a + c << endl;
cout << "a-c is " << a - c << endl;
cout << "a *c is " << a * c << endl;
cout << "2 *c is " << 2 * c << endl;
cout << "请输入一个负数(q结束):" << endl;
}
cout << "Done!" << endl;
return 0;
}
complex0.h
#pragma once
#include <iostream>
using namespace std;
class complex
{
private:
double real;
double imaginary;
public:
complex();
complex(double real, double imaginary);
complex operator~();
complex operator+(const complex& c);
complex operator-(const complex& c);
complex operator*(const complex& c);
friend complex operator*(double n, const complex& c2);
friend istream& operator>>(istream& is, complex& c);
friend ostream& operator<<(ostream& os, const complex& c);
};
complex0.cpp
#include "complex0.h"
complex::complex()
{
real = imaginary = 0.0;
}
complex::complex(double real, double imaginary)
{
this->real = real;
this->imaginary = imaginary;
}
complex complex::operator~()
{
complex temp;
temp.real = real;
temp.imaginary = -imaginary;
return temp;
}
complex complex::operator+(const complex& c)
{
complex temp;
temp.real = real + c.real;
temp.imaginary = imaginary + c.imaginary;
return temp;
}
complex complex::operator-(const complex& c)
{
complex temp;
temp.real = real - c.real;
temp.imaginary = imaginary - c.imaginary;
return temp;
}
complex complex::operator*(const complex& c)
{
complex temp;
temp.real = real * c.real - imaginary * c.imaginary;
temp.imaginary = real * c.imaginary + imaginary * c.real;
return temp;
}
complex operator*(double n, const complex& c2)
{
complex temp;
temp.real = n * c2.real;
temp.imaginary = n * c2.imaginary;
return temp;
}
istream& operator>>(istream& is, complex& c)
{
is >> c.real >> c.imaginary;
return is;
}
ostream& operator<<(ostream& os, const complex& c)
{
os << "(" << c.real << "," << c.imaginary << "i)";
return os;
}
运行结果:
考查点:
- 运算符重载
- 友元
注意:
- 输入输出可以记
2024年9月5日21:23:25