C++友元函数是指一个非成员函数可以访问类的私有成员和保护成员。以下是定义和使用C++友元函数的步骤:
在类的声明中声明友元函数。
在类的定义中定义友元函数。
在友元函数的实现中访问类的私有成员和保护成员。
下面是一个例子:
// 声明类
class MyClass {
private:
int privateData;
public:
MyClass(int data);
// 声明友元函数
friend void friendFunc(MyClass obj);
};
// 定义类的构造函数
MyClass::MyClass(int data) {
privateData = data;
}
// 定义友元函数
void friendFunc(MyClass obj) {
// 访问类的私有成员
cout << "私有成员的值是: " << obj.privateData << endl;
}
int main() {
MyClass obj(10);
// 调用友元函数
friendFunc(obj);
return 0;
}
在上面的例子中,我们声明了一个名为friendFunc
的友元函数,并将其声明为MyClass
类的友元。在友元函数的实现中,我们可以访问MyClass
类的私有成员privateData
。然后在主函数中,我们创建了一个MyClass
对象obj
并调用了friendFunc
函数。
输出结果将会是:
私有成员的值是: 10
注意:友元函数不是成员函数,因此在定义时不需要指定作用域操作符::
。在友元函数中可以直接访问类的私有成员和保护成员,无需通过对象或指针访问。