c++:建立一个复数类Complex,其私有数据成员mX和mY表示复数的实部和虚部,构造函数Complex用于对复数的实部和虚部初始化,友元函数Add,Sub,Mul和Div分别用于进行复数的加、减、乘和除法运算,函数Show用于显示复数的内容。在主函数中,实例化两个复数,并输入一个运算符,按运算符选择相应的友员函数进行复数运算,然后输出运算结果。
时间: 2023-05-23 14:03:34 浏览: 216
答:下面是 C++ 实现的 Complex 类的代码:
```cpp
#include <iostream>
using namespace std;
class Complex {
private:
double mX; // 实部
double mY; // 虚部
public:
Complex(double x=0, double y=0) : mX(x), mY(y) {}
friend Complex Add(const Complex& a, const Complex& b) {
return Complex(a.mX+b.mX, a.mY+b.mY);
}
friend Complex Sub(const Complex& a, const Complex& b) {
return Complex(a.mX-b.mX, a.mY-b.mY);
}
friend Complex Mul(const Complex& a, const Complex& b) {
double x=a.mX*b.mX - a.mY*b.mY;
double y=a.mX*b.mY + a.mY*b.mX;
return Complex(x, y);
}
friend Complex Div(const Complex& a, const Complex& b) {
double t=b.mX*b.mX + b.mY*b.mY;
double x=(a.mX*b.mX + a.mY*b.mY) / t;
double y=(a.mY*b.mX - a.mX*b.mY) / t;
return Complex(x, y);
}
void Show() const {
cout << mX << " + " << mY << "i" << endl;
}
};
int main() {
Complex a(1, 2), b(3, 4);
char op;
cin >> op;
switch (op) {
case '+':
Add(a, b).Show();
break;
case '-':
Sub(a, b).Show();
break;
case '*':
Mul(a, b).Show();
break;
case '/':
Div(a, b).Show();
break;
default:
cout << "Invalid operator!" << endl;
}
return 0;
}
```
请注意,以上代码只是一个简单的示例,实际应用中可能需要更复杂的实现。
关于 Lua 的闭包工厂以及中文加密的问题,我也可以回答,具体请问。
阅读全文