在 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; }
登录后复制
输出结果:
42
登录后复制
在这个例子中,print_num() 是 MyClass 的一个友元函数。它可以访问私有成员 m_num,即使它不是 MyClass 的成员函数。
受限访问
需要注意的是,友元函数对 private 成员的访问受到限制。友元函数只能在该类的成员函数调用时访问 private 成员。也就是说,友元函数不能直接从外部访问 private 成员。
以上就是C++ 友元函数能访问哪些类型成员?的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:走不完的路,转转请注明出处:https://www.dingdanghao.com/article/352323.html