C++中的友元函数是指一个函数可以访问类的私有成员和保护成员,即使这个函数不是类的成员函数。友元函数可以提高程序的执行效率,但是也会降低程序的安全性。
要定义一个友元函数,需要在类的定义中使用关键字friend来声明该函数为友元函数。友元函数可以是全局函数,也可以是其他类的成员函数。
下面是一个使用友元函数的例子:
cpp
复制代码
#include <iostream>
using namespace std;
class MyClass {
private:
int x;
public:
MyClass(int a) : x(a) {}
// 声明友元函数
friend void display(MyClass obj);
};
// 定义友元函数
void display(MyClass obj) {
cout << "x = " << obj.x << endl;
}
int main() {
MyClass obj(10); // 创建对象obj,初始化x为10
display(obj); // 调用友元函数display,输出obj的私有成员x的值
return 0;
}
在这个例子中,我们定义了一个名为MyClass的类,它有一个私有成员变量x。我们还声明了一个名为display的友元函数,它可以访问MyClass对象的私有成员x。在main函数中,我们创建了一个MyClass对象obj,并调用了友元函数display来输出obj的私有成员x的值。