C++中的friend class
来源:互联网 发布:数据挖掘建模工具 编辑:程序博客网 时间:2024/06/04 18:45
对于一个没有定义public访问权限的类,能够让其他的类操作它的私有成员往往是有用的。例如你写了一段binary tree的代码,Node是节点类,如果能够让连接多个节点的函数不需要调用public方法就能够访问到Node的私有成员的话,一定是很方便的。
Friend Classes(友元类)
C++中的friend关键字其实做这样的事情:在一个类中指明其他的类(或者)函数能够直接访问该类中的private和protected成员。你可以这样来指明:
friend class aClass;注意:friend在类中的声明可以再public、protected和private的如何一个控制域中,而不影响其效果。例如,如果你在protected域中有这样的声明,那么aClass类同样可以访问该类的private成员。
这有一个例子:
这样BinaryTree就可以直接访问Node中的private的成员了,就像下面这样:Friend Functions(友元函数)
友元函数和友元类的作用是一样的,它允许一个函数不需要通过其public接口就能够访问到类中的private和protected成员变量。你可以这样去声明:
friend return_type class_name::function(args);这里有一个例子:
class Node { private: int data; int key; // ... friend int BinaryTree::find(); // Only BinaryTree's find function has access};这样find方法就可以直接访问Node中的私有成员变量了,而BinaryTree中的其他的方法去不能够直接的访问Node的成员变量。(这就是友元类和友元函数的区别)
0 0
- C++中的friend class
- [C++] friend class
- C++::Class Friend
- friend class
- friend class
- friend class
- [C++] C++中friend的使用(friend function and friend class)
- [C++]friend
- 实验: friend class
- C++ class friend
- 地基工friend class
- About "friend class"
- C++ Friend class
- friend class & function
- 7.3.4 friend class
- friend class className
- c++中friend class
- C++ friend function and friend class
- Android绘制流程
- 解决网站跳转到Apache 2 Test Page powered by CentOS
- 遍历二叉树——递归和非递归(栈和队列的应用)实现
- App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Te
- Android ZBar bar code reader二维码
- C++中的friend class
- 苦闷的程序员
- 如何才能恢复Excel文档的编辑密码
- 关于流媒体新手学习
- ubuntu 解压缩
- OpenGL SuperBible 7th源码编译记录
- 设计模式——单例模式
- 操作系统接口shell
- 左侧固定菜单,右侧浮动菜单样式示例代码