【C++】数据结构:抽象定义复数,并实现复数的加、减、乘、除四则运算
时间: 2024-09-15 21:08:45 浏览: 20
在C++中,我们可以创建一个抽象定义的复数类(Complex),它包含实部(real)和虚部(imaginary)两个私有成员变量。为了实现复数的四则运算,我们会提供公有成员函数:
```cpp
#include <iostream>
class Complex {
private:
double real; // 实部
double imaginary; // 虚部
public:
// 构造函数
Complex(double r = 0, double i = 0) : real(r), imaginary(i) {}
// 获取复数的值
void display() const {
std::cout << "(" << real << ", " << imaginary << ")\n";
}
// 加法
Complex operator+(const Complex& other) const {
return Complex(real + other.real, imaginary + other.imaginary);
}
// 减法
Complex operator-(const Complex& other) const {
return Complex(real - other.real, imaginary - other.imaginary);
}
// 乘法
Complex operator*(const Complex& other) const {
return Complex(real * other.real - imaginary * other.imaginary,
real * other.imaginary + imaginary * other.real);
}
// 除法(假设其他不是零)
Complex operator/(const Complex& other) const {
double denominator = other.real * other.real + other.imaginary * other.imaginary;
return Complex((real * other.real + imaginary * other.imaginary) / denominator,
(imaginary * other.real - real * other.imaginary) / denominator);
}
};
int main() {
Complex c1(3, 4); // 复数 3 + 4i
Complex c2(1, 2); // 复数 1 + 2i
c1.display(); // 输出 (3, 4)
c2.display(); // 输出 (1, 2)
Complex sum = c1 + c2;
Complex diff = c1 - c2;
Complex product = c1 * c2;
Complex quotient = c1 / c2;
std::cout << "Sum: ";
sum.display();
std::cout << "\nDifference: ";
diff.display();
std::cout << "\nProduct: ";
product.display();
std::cout << "\nQuotient (assuming non-zero): ";
quotient.display();
return 0;
}
```
在这个例子中,`Complex` 类实现了加、减、乘、除这四个基本操作符重载,使得可以像处理普通数值一样对复数进行操作。