📅  最后修改于: 2023-12-03 14:59:52.128000             🧑  作者: Mango
C++中的一个类可以将其成员函数声明为 friend
,以便访问其私有成员。本文介绍如何使用 friend
函数交换两个类的私有成员。
#include<iostream>
using namespace std;
class Swap {
private:
int num1, num2;
public:
Swap(int a, int b) {
num1 = a;
num2 = b;
}
friend void swap(Swap &s);
};
void swap(Swap &s) {
int temp = s.num1;
s.num1 = s.num2;
s.num2 = temp;
}
int main() {
Swap s(10, 20);
cout << "Before Swapping: " << endl;
cout << "num1: " << s.num1 << " num2: " << s.num2 << endl;
swap(s); // 调用 friend 函数
cout << "After Swapping: " << endl;
cout << "num1: " << s.num1 << " num2: " << s.num2 << endl;
return 0;
}
上述代码中定义了一个 Swap
类,该类包含两个私有成员变量 num1
和 num2
。在 Swap
类中,我们将 swap
函数声明为 friend
函数。这意味着 swap
函数可以访问 Swap
类的私有成员变量。
在 swap
函数中,我们使用一个临时变量来交换两个变量的值。在 main
函数中,我们创建了一个类的对象 s
,并分别打印出交换前后的 num1
和 num2
的值,接着调用 swap
函数来交换私有成员变量,再次打印输出交换后的 num1
和 num2
的值。
Before Swapping:
num1: 10 num2: 20
After Swapping:
num1: 20 num2: 10
通过让函数成为一个 friend
函数,我们可以在类的外部访问私有成员变量。friend
函数在 C++
中非常有用,因为它可以让我们访问类的私有成员并完成一些操作。然而,它也应该谨慎使用,以避免破坏数据的封装性和运行期故障。