用低版本的c++编写程序定义复数类,重载运算符+ (用友元函数实现),实现向量之间的加法运算(代码和运行结果拍照上传)。 (2)简要说明用友元函数实现运算符重载的使用场景。
时间: 2024-10-11 11:11:24 浏览: 32
在C++中,我们可以创建一个复数类(ComplexNumber)并使用友元函数重载运算符`+`来实现两个复数之间的加法操作。以下是简单的代码示例:
```cpp
#include <iostream>
class ComplexNumber {
private:
double real;
double imag;
public:
// 构造函数
ComplexNumber(double r = 0, double i = 0) : real(r), imag(i) {}
// 友元函数重载+
friend ComplexNumber operator+(const ComplexNumber& a, const ComplexNumber& b) {
ComplexNumber result(a.real + b.real, a.imag + b.imag);
return result;
}
// 输出复数
void print() const {
std::cout << real << " + " << imag << "i" << std::endl;
}
};
int main() {
ComplexNumber c1(1, 2);
ComplexNumber c2(3, 4);
ComplexNumber sum = c1 + c2; // 直接使用+运算符对复数求和
sum.print(); // 输出结果
return 0;
}
```
运行上述代码,如果`c1 = (1, 2)` 和 `c2 = (3, 4)`,则`sum = c1 + c2` 将会得到 `(4, 6)`。
友元函数实现运算符重载的使用场景通常是在类外部需要直接访问类的私有成员,并且希望保持类的封装性,比如上面的加法操作,我们不需要让`ComplexNumber`类暴露其内部的`real`和`imag`成员变量,而是通过友元函数提供一个友好的接口进行操作。
阅读全文