静态成员与友元函数
2016-01-22 21:50
190 查看
1、静态成员
由来:使用全局对象实现数据共享,由于其处处可见,不够安全,故可使用静态成员实现类的多个对象之间的数据共享。
包括:静态数据成员、静态成员函数
特点:静态数据成员属于类,而不属于某个对象独有,类的所有对象共享静态数据成员
静态数据成员使用关键字static,在类体中声明,在类体外定义,以分配存储空间并初始化;
静态数据成员应用:
a.用来保存流动变化的对象个数;
b.作为一个标志,指示一个特定的动作是否发生;
c.指向链表第一个成员或最后一个成员的指针
静态成员函数访问:
a.<类名> : : <静态成员函数名>(<参数表>)
ClassA : : Fun(2,3);
b.<对象名>.<静态成员函数名>(<参数表>)
objA.Fun(2,3);
2、友元
类具有封装性,类中的数据成员只有通过该类的成员函数才可以访问。若在程序中需要访问类的私有成员,必须通过类的对象调用类的成员函数,频繁调用类的成员函数将影响程序运行效率;
为解决上述问题,C++提供友元机制,友元无需通过调用成员函数即可访问类的私有数据,提高程序运行效率。
友元函数:类中函数的声明前加上“friend”,即声明该函数为所在类的友元函数;
友元类 :类中类的声明前加上“friend”,即声明该类为所在类的友元类,友元类中的所有函数都是所在类的友元函数;
注:友元函数和友元类在提高程序运行效率、方便编程的同时破坏了类的封装性,使用时应权衡利弊;
由来:使用全局对象实现数据共享,由于其处处可见,不够安全,故可使用静态成员实现类的多个对象之间的数据共享。
包括:静态数据成员、静态成员函数
特点:静态数据成员属于类,而不属于某个对象独有,类的所有对象共享静态数据成员
静态数据成员使用关键字static,在类体中声明,在类体外定义,以分配存储空间并初始化;
静态数据成员应用:
a.用来保存流动变化的对象个数;
b.作为一个标志,指示一个特定的动作是否发生;
c.指向链表第一个成员或最后一个成员的指针
静态成员函数访问:
a.<类名> : : <静态成员函数名>(<参数表>)
ClassA : : Fun(2,3);
b.<对象名>.<静态成员函数名>(<参数表>)
objA.Fun(2,3);
2、友元
类具有封装性,类中的数据成员只有通过该类的成员函数才可以访问。若在程序中需要访问类的私有成员,必须通过类的对象调用类的成员函数,频繁调用类的成员函数将影响程序运行效率;
为解决上述问题,C++提供友元机制,友元无需通过调用成员函数即可访问类的私有数据,提高程序运行效率。
友元函数:类中函数的声明前加上“friend”,即声明该函数为所在类的友元函数;
友元类 :类中类的声明前加上“friend”,即声明该类为所在类的友元类,友元类中的所有函数都是所在类的友元函数;
注:友元函数和友元类在提高程序运行效率、方便编程的同时破坏了类的封装性,使用时应权衡利弊;
相关文章推荐
- opencv 错误(二)
- 学习Slim Framework for PHP v3 ( 二)
- C#--SelectedIndexChanged事件, SelectedValueChanged事件和SelectionChangeCommitted事件的区别及联系
- Android ANR 分析解决方法
- the first QT
- 用指针输出,做形参
- TFS 与活动目录AD(Active Directory)的同步机制
- 关于找工作企业的选择
- Java中接口的说明
- Linux 配置及软件的安装
- python核心编程-GUI程序按钮与标签
- eclipse黑色酷炫主题设置2
- LeetCode 66 Plus One(加一)(vector)
- Iterable Object, Iterator, Generator, Generator Iterator
- P23 (**) Extract a given number of randomly selected elements from a list.
- P23 (**) Extract a given number of randomly selected elements from a list.
- Python 格式化字符分类
- C++整型字面值
- OJ 杨辉三角
- 从国外网站找到的 DirectX XAudio2 编程教程