友元函数用到运算符重载咋用举例子
时间: 2024-06-15 21:07:34 浏览: 126
友元函数是在C++中用于访问类的私有成员的一种机制。通过友元函数,我们可以将一个非成员函数声明为类的友元,使其能够访问该类的私有成员。运算符重载是C++中的一种特性,它允许我们重新定义已有的运算符的行为。
下面是一个示例,演示了如何使用友元函数和运算符重载:
```cpp
#include <iostream>
class Complex {
private:
double real;
double imag;
public:
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
// 声明友元函数
friend Complex operator+(const Complex& c1, const Complex& c2);
void display() {
std::cout << real << " + " << imag << "i" << std::endl;
}
};
// 定义友元函数,实现复数相加
Complex operator+(const Complex& c1, const Complex& c2) {
Complex temp;
temp.real = c1.real + c2.real;
temp.imag = c1.imag + c2.imag;
return temp;
}
int main() {
Complex c1(2.5, 3.5);
Complex c2(1.5, 2.5);
Complex sum = c1 + c2; // 使用运算符重载的方式相加两个复数
sum.display(); // 输出结果:4 + 6i
return 0;
}
```
在上面的示例中,我们定义了一个名为`Complex`的类,表示复数。我们使用友元函数`operator+`重载了加法运算符,使其能够对两个`Complex`对象进行相加操作。在`main`函数中,我们创建了两个`Complex`对象`c1`和`c2`,然后使用重载的加法运算符将它们相加,并将结果赋给`sum`对象。最后,我们调用`sum.display()`方法来显示结果。
阅读全文