第12章静态成员和友元

第12章静态成员和友元

ID:36808258

大小:253.00 KB

页数:37页

时间:2019-05-10

第12章静态成员和友元_第1页
第12章静态成员和友元_第2页
第12章静态成员和友元_第3页
第12章静态成员和友元_第4页
第12章静态成员和友元_第5页
资源描述:

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

1、第12章静态成员和友元学习要点:掌握静态成员和友元的概念熟练掌握如何定义和使用静态成员熟练掌握如何定义和使用友元12.1静态成员对象是类的实例,类刻划了一组具有相同属性的对象类中声明的成员变量属于实例化后的对象,有多个拷贝12.1静态成员参看第十一章对程序中生成的文件对象计数的例子为了计算生成的对象的个数,需要定义一个全局变量,以便在各个文件中都访问这个变量intFileCount=0;外部全局变量在整个程序中都是可见的,因此可以达到数据共享的目的对程序中生成的文件对象计数//file.cppexternintFileCount;//在主程序中定义的全局变量File

2、::File(char*name){length=0;strcpy(filename,name);contents=NULL;FileCount++;}File::File(File&srFile){length=srFile.length;strcpy(filename,"copyof");strcat(filename,srFile.filename);contents=newchar[length];strcpy(contents,srFile.contents);FileCount++;}修改类File,使能对程序中生成的文件对象计数File::~File(

3、){delete[]contents;FileCount--;}对程序中生成的文件对象计数#include#include“File.h”intFileCount=0;voidmain(){cout<<“Filenumber:“<

4、类File,使能对程序中生成的文件对象计数程序的运行结果:Filenumber:0Filenumber:3Filenumber:2静态成员为了安全起见,在程序中很少用全局变量从封装和面向对象的角度,FileCount应属于File类FileCount是反映类的特性的,而不是某个对象Filef1,f2;多个对象之间如果要实现数据共享,可以使用静态的数据成员静态成员一个类的静态成员是用来表示类的属性的,而不是对象的属性的成员类定义中声明的静态变量被该类的对象所共享,即,对该类的所有对象,类的静态成员变量只有一个拷贝定义方法:在类成员前面加上static关键字静态成员分静

5、态数据成员和静态成员函数静态数据成员公共静态数据成员可被类的外部访问,保护或私有的静态数据成员只可被类的内部访问。静态数据成员是类的所有对象的共享成员,而不是属于某个对象的成员。例如:classA{intx,y;staticintshared;.....};intA::shared=0;Aa,b;静态数据成员---注意静态数据成员作为全局变量,其存储空间是在类外分配的,因此静态数据成员不能在类内初始化,也不能用构造函数初始化静态数据成员。静态数据成员必须在类的实现部分初始化,初始化时不需要加static,但静态数据成员前面必须使用作用域运算符“::”来标明它所属的类

6、。修改File类classFile{//….private:staticintFileCount;//私有的,外界不可直接访问//……}classFile{//….public:staticintFileCount;//公有的//……}静态变量也遵循类的访问控制例:看下面程序的运行结果classMyclass{public:voidGetSum(inta);staticintSum;private:intA;};voidPrintSum(Myclass&A){cout<<"Sum="<

7、=10;//必须在类外部对静态数据成员初始化voidMyclass::GetSum(inta){A=a;Sum+=A;}voidPrintSum(Myclass&A){cout<<"Sum="<

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

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

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