C++的友元函数和内部类
来源:互联网 发布:网络社交的好处 编辑:程序博客网 时间:2024/05/18 00:07
1.友元函数
C++中,定义一个类中的成员分为私有成员、受保护成员和公有成员,我们知道,这些私有成员和受保护的成员是无法通过对象直接访问的,而是要通过调用公有成员函数从而间接的访问这些私有成员,那假如我的程序中出现循环要重复访问这个私有成员时,每次都要先通过调用公有成员间接的来访问该私有成员,这将造成空间和时间上的大大浪费。所以,我们就想怎么样能够使对象直接访问这些私有成员呢?那我们就引入了友元这个概念,假设定义了一个A类,又定义了一个B类,如果我们想使B中的某个函数f1可以直接访问A类中的私有成员,那我们就在该函数f1的前面加上friend。嘿嘿 废话比较多 只是想让你更加深入的了解友元。如果让我说优缺点的话(用我的话来说):(1)优点:可以使定义为友元函数或者友元类的函数直接访问另一个类中的私有成员和受保护成员,提高效率,方便编程。(2)缺点:破坏了类的封装性,提供了安全漏洞
2.内部类
需要了解2个概念:内部类和静态修饰符static1)首先,用内部类是因为内部类与所在外部类有一定的关系,往往只有该外部类调用此内部类。所以没有必要专门用一个Java文件存放这个类。2)静态都是用来修饰类的内部成员的。比如静态方法,静态成员变量,静态常量。它唯一的作用就是随着类的加载(而不是随着对象的产生)而产生,以致可以用类名+静态成员名直接获得。这样静态内部类就可以理解了,因为这个类没有必要单独存放一个文件,它一般来说只被所在外部类使用。并且它可以直接被用 外部类名+内部类名 获得。以下举例说明怎么使用:Student类有个叫School的内部类(非静态)Student stu = new Student();stu.School sch = new stu.School();sch就是School的一个对象。假如School是内部静态类:Student.School sch = new Student.School();
- C++的友元函数和内部类
- js的内部类和系统函数
- 定义一个包含私有成员变量和函数的类,再定义一个内部类,在内部类函数中访问外部成员变量,并调用外部函数。在外部类函数中创建内部类对象,调用内部类函数
- 第05章 CORE C++_对象的创建和使用_继承_多态_析构_xxx_cast_友元_只读成员_静态成员_多重继承_虚继承_内部类
- 内部类的分类和使用内部类的好处
- js内部类和系统函数
- js_day18--js内部类和系统函数
- JavaScript内部类和系统函数
- 【C++】友元类和友元函数(转)
- C++: 友元函数和友元类详解
- 黑马程序元--内部类
- 黑马程序元--内部类
- 静态内部类和非静态内部类的区别
- Java的内部类和匿名内部类
- 普通内部类和静态内部类的一点区别
- Java静态内部类和非内部类的区别
- 静态内部类和非静态内部类的区别
- Java当中的内部类和匿名内部类
- spring 学习资料
- 关注机器学习的最新热点方向
- iptables详解
- 楼天城 楼教主
- Android ViewPager使用详解
- C++的友元函数和内部类
- #、##和__VA_ARGS__
- DUiLib 源码分析——第一篇UIManager
- 如何绑定或者解除绑定微博和人人帐号
- boost - 准备工作
- DUiLib 源码分析——第二篇UIBase
- 解析vs2010下的可执行程序
- memcpy的实现
- linux网络编程之-----多播(组播)编程