友元函数和友元类
来源:互联网 发布:普通话水平考试软件 编辑:程序博客网 时间:2024/05/17 03:39
18、友元函数和友元类
一个类中可以有public,protected,private三种属性的成员,通过对象可以访问public成员。只有本类中的函数可以访问本类的private成员,现在,将来介绍另外一种情况-----有元(friend)
借助有元可以使得其他类中的成员函数以及全局范围内的函数访问当前类的private成员
。
b.有元函数
在当前类以外定义的,不属于当前类的函数也可以在类中声明,但要在前面加friend关键字,友元函数可以是不属于任何类的非成员函数(注意普通函数使用成员变量时需要声明哪个类中的成员变量),也可以是其他类的成员函数。
c.友元函数可以访问当前类中的所有成员,包括public,protected,private属性的
d.将其他类的成员函数声明为友元函数
friend函数不仅可以是全局函数(非成员函数),还可以是另外一个类的成员函数。
19、有元类
友元类的所有成员函数都是另一个类的有元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)
a.当希望一个类可以存取另一个类的私有成员时,可以将该类声明为另一类的友元类,定义友元类的语句格式如下:
friend class类名:
类名必须是程序中已经定义过的类
列如:
class A
{
.....
public :
friend class B;
.....
}
经过以上说明:类B的所有成员函数都是类A的有元函数,即存取类A 的私有成员和保护成员
使用有元类时应注意:
(1)有元关系不能继承
(2)有元关系是单向的,不具有交换性。
(3)有缘关系不具有传递性
一个类中可以有public,protected,private三种属性的成员,通过对象可以访问public成员。只有本类中的函数可以访问本类的private成员,现在,将来介绍另外一种情况-----有元(friend)
借助有元可以使得其他类中的成员函数以及全局范围内的函数访问当前类的private成员
。
b.有元函数
在当前类以外定义的,不属于当前类的函数也可以在类中声明,但要在前面加friend关键字,友元函数可以是不属于任何类的非成员函数(注意普通函数使用成员变量时需要声明哪个类中的成员变量),也可以是其他类的成员函数。
c.友元函数可以访问当前类中的所有成员,包括public,protected,private属性的
d.将其他类的成员函数声明为友元函数
friend函数不仅可以是全局函数(非成员函数),还可以是另外一个类的成员函数。
19、有元类
友元类的所有成员函数都是另一个类的有元函数,都可以访问另一个类中的隐藏信息(包括私有成员和保护成员)
a.当希望一个类可以存取另一个类的私有成员时,可以将该类声明为另一类的友元类,定义友元类的语句格式如下:
friend class类名:
类名必须是程序中已经定义过的类
列如:
class A
{
.....
public :
friend class B;
.....
}
经过以上说明:类B的所有成员函数都是类A的有元函数,即存取类A 的私有成员和保护成员
使用有元类时应注意:
(1)有元关系不能继承
(2)有元关系是单向的,不具有交换性。
(3)有缘关系不具有传递性
阅读全文
0 0
- 友元函数和友元类
- 友元函数和友元类
- 友元类和友元函数
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元类和友元函数
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- 友元函数和友元类
- java编写静态的俄罗斯方块
- android帧动画实现方式
- java.lang.NoSuchFieldError: No field title of type
- jks bks 等的定义 如何将jks转化为bks的
- Innodb隔离级别的实现原理
- 友元函数和友元类
- vs2010 创建 translation file 方法
- gg
- 学习笔记 长的帅的人才能看
- js:数字失真bug
- Android中 使用RxJava2.0注意点归纳
- 数据库驱动包下载
- 解决空指针的正确姿势
- java jdk环境配置和cmd编译运行java程序