在 c++++ 中,友元函数可以访问类的所有公共、受保护和私有成员,但私有成员的访问受限,只能在类的成员函数调用时进行。
C++ 友元函数可以访问哪些类型成员?
什么是友元函数?
友元函数是 C++ 中一种特殊的函数,它可以访问一个类的 private 和 protected 成员。友元函数的声明必须在类定义的外部。
友元函数可以访问的类型成员
友元函数可以访问以下类型成员:
- public 成员: 友元函数可以访问类的所有 public 成员。
- protected 成员: 友元函数可以访问类的所有 protected 成员。
- private 成员: 友元函数可以访问类的 private 成员,但只有当友元函数被该类的成员函数调用时。
实战案例
考虑以下代码:
class MyClass { private: int m_num; public: MyClass(int num) : m_num(num) {} friend void print_num(MyClass& obj) { std::cout << obj.m_num << std::endl; } }; int main() { MyClass obj(42); print_num(obj); // 友元函数访问私有成员 return 0; }