📅  最后修改于: 2023-12-03 14:39:39.316000             🧑  作者: Mango
在 C ++ 中,可以使用友元函数处理和访问私有和受保护的成员。友元函数是一个独立的函数,但有权访问类的私有和受保护成员。
以下是一个示例程序,说明如何使用友元函数交换两个成员:
#include <iostream>
using namespace std;
class Example {
private:
int a, b;
public:
Example(int x, int y) {
a = x;
b = y;
}
void display() {
cout << "a: " << a << " b: " << b << endl;
}
friend void swap(Example &obj); // 声明swap()为友元函数
};
void swap(Example &obj) { // 定义swap()函数
int temp = obj.a;
obj.a = obj.b;
obj.b = temp;
}
int main() {
Example obj(100, 200);
obj.display();
swap(obj);
obj.display();
return 0;
}
在上面的示例程序中,我们定义了一个名为 Example 的类,其中包含两个私有成员变量 a 和 b。我们还声明并定义了一个名为 swap 的友元函数,负责交换 Example 对象的两个成员。
在主函数中,我们首先创建了一个名为 obj 的 Example 对象,它包含了两个变量 a 和 b,然后将这些变量的值打印到屏幕上。接下来,我们调用 swap 函数来交换这两个变量的值,然后再次打印出变量的值。
程序的输出应该如下所示:
a: 100 b: 200
a: 200 b: 100
可以看到,swap 函数成功地交换了 obj 对象的两个成员变量的值。
总的来说,使用友元函数是一种很方便的方式,可以让你访问和操作类的私有和受保护成员。它们与类内的成员函数很相似,但是可以从类外部访问,并且并不属于类本身。