阅读量:0
在C++中,类友元函数是一种特殊的函数,它可以访问类的私有和保护成员。友元函数不是类的成员函数,因此它不受类的访问控制规则的限制。
要声明一个友元函数,可以在类定义中使用friend
关键字。例如:
class MyClass { private: int privateVar; protected: int protectedVar; public: MyClass(int var) : privateVar(var), protectedVar(var) {} friend void accessPrivateMembers(MyClass& obj); }; void accessPrivateMembers(MyClass& obj) { std::cout << "Private variable: " << obj.privateVar << std::endl; std::cout << "Protected variable: " << obj.protectedVar << std::endl; }
在上面的示例中,accessPrivateMembers
函数被声明为MyClass
类的友元函数。它可以访问MyClass
类的私有成员privateVar
和保护成员protectedVar
。
要调用友元函数,可以使用类对象作为参数。例如:
int main() { MyClass obj(10); accessPrivateMembers(obj); return 0; }
输出结果为:
Private variable: 10 Protected variable: 10
需要注意的是,友元函数不是类的成员函数,因此它不受类的访问控制规则的限制。但是,友元函数也不能访问类的私有和保护构造函数和析构函数。