《静态成员与友元》PPT课件

《静态成员与友元》PPT课件

ID:36868810

大小:224.76 KB

页数:31页

时间:2019-05-11

《静态成员与友元》PPT课件_第1页
《静态成员与友元》PPT课件_第2页
《静态成员与友元》PPT课件_第3页
《静态成员与友元》PPT课件_第4页
《静态成员与友元》PPT课件_第5页
资源描述:

《《静态成员与友元》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第15章静态成员与友元类是类型而不是对象,每个类的对象都是该类数据成员的拷贝。然而,往往需要让类的所有对象在类的范围内共享某个数据。声明为static的类成员便能在类范围中共享,称之为静态成员。友元函数完全是普通的C++函数,不同的是,它可以访问类的保护成员或私有成员,方便编程,提高了效率,但却破坏了类的封装。15.1静态成员的需要性15.2静态成员的使用15.3静态数据成员15.4静态成员函数15.5需要友元的原因15.6友元的使用#include#include

2、g.h>intnextStudentID=0;ClassStudentID{public:StudentID(){value=++nextStudentID;cout<<“Assigningstudentid”<

3、){cout<<“Constructingstudent”<

4、在类StudentId的内部实现中,只能放在应用程序中主函数main()的前面。在重用StudentId类的时候,总是还要额外的考虑一个全局变量的处置,这不得不使类的封装性受到伤害。返回一个类的属性是该类所有对象的属性,而不是这个类某个对象的属性。因此,我们需要一种能标是类的属性而不是单个对象属性的方法。这就是静态成员的作用。一个类的静态数据成员是用来表示类的属性的成员,而不是对象的属性的成员。成员有数据成员和成员函数之分,静态成员也有静态数据成员和静态成员函数之分。静态成员用static声明。#in

5、clude#includeclassStudent{public:Student(char*pName="noname"){cout<<"createonestudent";strncpy(name,pName,40);name[39]='';noOfStudents++;//静态成员:每创建一个对象,学生人数增1cout<

6、fStudents--;//每析构一个对象,学生人数减1cout<

7、udent::number()<

8、多少,甚至没有,静态成员noOfStudent也只有一个。所有Student对象都共享它,并且能够访问它。在Student对象空间中,是没有静态数据成员noOfStudents的,它的空间,不会随着对象的产生而分配,或随着对象的消失而收回。所以它的空间分配并不在Student的构造函数里完成,并且空间回收也不在类的析构函数里完成。静态数据成员确实是在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所以静态数据成员不能在任何函数内分配空间和初始化。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。