友元函数和友元类
来源:互联网 发布:手机淘宝咸鱼二手网 编辑:程序博客网 时间:2024/05/17 04:56
一个类中可以有 public、protected、private 三种属性的成员,通过对象可以访问 public 成员,只有本类中的函数可以访问本类的 private 成员。现在,我们来介绍一种例外情况——友元(friend)。借助友元(friend),可以使得其他类中的成员函数以及全局范围内的函数访问当前类的 private 成员。
友元函数:
在当前类以外定义的、不属于当前类的函数也可以在类中声明,但要在前面加 friend 关键字,这样就构成了友元函数。友元函数可以是不属于任何类的非成员函数,也可以是其他类的成员函数。
(1)友元函数可以访问当前类中的所有成员,包括 public、protected、private 属性的。
(2)friend 函数不仅可以是全局函数(非成员函数),还可以是另外一个类的成员函数。
友元类:
友元类的所有成员函数都是另一个类的友元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)。当希望一个类可以存取另一个类的私有成员时,可以将该类声明为另一类的友元类。
例如:
- class A
- {
- public:
- friend class C; //这是友元类的声明
- private:
- int data;
- };
- class C //友元类定义,为了访问类A中的成员
- {
- public:
- void set_show(int x, A &a) { a.data = x; cout<<a.data<<endl;}
- };
注意:
(1) 友元关系不能被继承。
(2) 友元关系是单向的,不具有交换性。若类B是类A的友元,类A不一定是类B的友元,要看在类中是否有相应的声明。
(3) 友元关系不具有传递性。若类B是类A的友元,类C是B的友元,类C不一定是类A的友元,同样要看类中是否有相应的申明。
阅读全文
0 0
- 友元函数和友元类
- 友元函数和友元类
- 友元类和友元函数
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元类和友元函数
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- linux进程
- const 关键字
- 解决访问后台服务出现跨域问题,设置jsonp格式
- [C/C++标准库]_[初级]_[使用正则表达式过滤Windows文件名中的非法字符]
- 关于c的烫烫烫烫烫烫
- 友元函数和友元类
- c++类的成员函数在定义对象前分配了存储空间吗?
- Alibaba Canal Manager Model 配置管理实现
- MyEclipse提示键配置、提示快捷键、提示背景色、关键字颜色、代码显示、编辑框背景色等
- Bootstrap所需文件引入
- 【Scikit-Learn 中文文档】高斯过程
- The import javax.servlet.http.HttpServletRequest cannot be resolved
- MFC CString类使用方法
- MySQL数据库的增删改查--连咸鱼都能学会