如何用C++编程实现复数类,以便正确处理并显示(6+7i)与7的加法和减法,以及7与(6+7i)的相应操作?请提供复数类中涉及+和-运算符重载的方法代码示例。
时间: 2024-12-23 10:27:43 浏览: 2
在C++中,我们可以创建一个名为`Complex`的类来表示复数,并通过运算符重载`+`和`-`来实现复数之间的加法和减法。下面是一个简单的复数类实现:
```cpp
#include <iostream>
#include <complex>
class Complex {
private:
double real;
double imag;
public:
// 构造函数
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
// 访问复数的实部和虚部
double getReal() const { return real; }
double getImag() const { return imag; }
// 运算符重载:加法
Complex operator+(const Complex& other) const {
return Complex(real + other.real, imag + other.imag);
}
// 运算符重载:减法
Complex operator-(const Complex& other) const {
return Complex(real - other.real, imag - other.imag);
}
// 打印复数
void display() const {
std::cout << "(" << real << " + " << imag << "i)" << std::endl;
}
};
int main() {
Complex c1(6, 7); // (6 + 7i)
Complex c2(7, 0); // (7 + 0i)
// 加法
Complex sum = c1 + c2;
std::cout << "c1 + c2 = ";
sum.display();
// 减法
Complex diff = c1 - c2;
std::cout << "c1 - c2 = ";
diff.display();
return 0;
}
```
在这个例子中,我们首先定义了一个复数类`Complex`,包含两个私有成员变量`real`和`imag`分别代表实部和虚部。接着实现了构造函数、访问器方法以及加法和减法的运算符重载方法。
在`main`函数中,我们创建了两个复数对象`c1`和`c2`,然后分别计算它们的和与差,并打印结果。
阅读全文