用 C++ 编程题(运算符重载)。设计一个复数类,要求对其构造函数进行重载,并重载运算符+号,以便用于计算两个复数类对象的相加,再写一个类型转换函数,将复数类对象转化为一个复数实部的数值,再参与简单数值计算。
时间: 2024-11-15 21:33:52 浏览: 25
面向对象作业1-构造函数+运算符重载.docx
在C++中,运算符重载是一种特殊的成员函数,它允许我们自定义基本的算术、比较和其他运算符的行为,使得它们能够处理特定类型的对象。对于复数类的设计,我们可以这样做:
首先,我们需要定义一个复数类`Complex`,包含两个私有变量表示实部(`real`)和虚部(`imaginary`)。
```cpp
class Complex {
private:
double real;
double imaginary;
public:
// 构造函数重载
Complex(double r = 0.0, double i = 0.0) : real(r), imaginary(i) {}
// 运算符+的重载,用于两个复数相加
Complex operator+(const Complex& other) const {
return Complex(real + other.real, imaginary + other.imaginary);
}
// 类型转换函数,返回复数的实部作为double类型
double toReal() const {
return real;
}
};
```
现在,你可以创建两个`Complex`对象并进行相加操作,例如:
```cpp
int main() {
Complex c1(3.5, 4.0);
Complex c2(2.0, -1.5);
Complex sum = c1 + c2; // 相同于 Complex(sum) = c1 + c2;
std::cout << "Sum: (" << sum.real << ", " << sum.imaginary << ")\n";
double realPartOfSum = sum.toReal(); // 转换为double进行其他计算
std::cout << "Real part of the sum: " << realPartOfSum << "\n";
return 0;
}
```
阅读全文