#include <iostream>
// 定义类
class MyClass {
private:
int privateVariable; // 私有成员变量
public:
MyClass(int value) : privateVariable(value) {} // 构造函数
// 友元函数声明在类内部
friend void printPrivateVariable(MyClass obj);
};
// 友元函数定义在类外部
void printPrivateVariable(MyClass obj) {
std::cout << "The value of privateVariable is: " << obj.privateVariable << std::endl;
}
int main() {
MyClass myObj(42); // 创建类的对象
// 在主函数中调用友元函数
printPrivateVariable(myObj);
return 0;
}
- 友元函数声明:在
MyClass
类内部进行声明friend void printPrivateVariable(MyClass obj);
,通过friend
关键字声明printPrivateVariable
函数为MyClass
类的友元函数,使其可以访问MyClass
类的私有成员变量。
- 友元函数定义:在
MyClass
类外部进行定义,函数体中可以直接访问MyClass
对象的私有成员变量privateVariable
。
- 主函数调用:在
main
函数中,首先创建MyClass
类的对象myObj
,然后直接调用友元函数printPrivateVariable
并传入myObj
对象,从而输出私有成员变量的值。