定义一个复数类Comp,有实部r和虚部i两个属性,有成员函数m_set()设置复数的实部和虚部的值,有成员函数m_mod计算复数的模sqrt(r*r+i*i),有成员函数m_add(Comp &r)、m_minus(Comp &r)实现与其它复数对象相加和相减,有成员函数m_show()输出该复数。
时间: 2024-03-08 09:48:50 浏览: 48
好的,这是一个比较常见的面向对象编程问题,下面是一个可能的解法:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
class Comp {
public:
// 设置复数的实部和虚部的值
void m_set(double r, double i) {
real = r;
imag = i;
}
// 计算复数的模
double m_mod() {
return sqrt(real * real + imag * imag);
}
// 与其它复数对象相加
void m_add(Comp &r) {
real += r.real;
imag += r.imag;
}
// 与其它复数对象相减
void m_minus(Comp &r) {
real -= r.real;
imag -= r.imag;
}
// 输出该复数
void m_show() {
cout << real << "+" << imag << "i" << endl;
}
private:
double real, imag;
};
int main() {
Comp c1, c2;
c1.m_set(1, 2);
c2.m_set(3, 4);
c1.m_show(); // 输出 1+2i
c2.m_show(); // 输出 3+4i
c1.m_add(c2);
c1.m_show(); // 输出 4+6i
c1.m_minus(c2);
c1.m_show(); // 输出 1+2i
cout << c1.m_mod() << endl; // 输出 2.23607
return 0;
}
```
希望这个解法能够帮到你,如果有任何问题或者需要进一步解释,请随时提出。