静态成员与友员.ppt

静态成员与友员.ppt

ID:49254493

大小:122.00 KB

页数:22页

时间:2020-02-03

静态成员与友员.ppt_第1页
静态成员与友员.ppt_第2页
静态成员与友员.ppt_第3页
静态成员与友员.ppt_第4页
静态成员与友员.ppt_第5页
资源描述:

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

1、第15章类和对象的其他特性15.1静态成员15.2友元15.1.1静态数据成员1.静态数据成员的定义一个类的不同对象,其数据成员的存储空间是相互独立的。15.1静态成员"Cheng"'F'20ab"Zhang"'M'18classPerson{charName[20];//姓名charSex;//性别intAge;//年龄public:…};Persona("Cheng",'F',20),b("Zhang",'M',18);如果将类的一个成员定义成静态型的,则该类的所有对象的该成员共用同一存储空间。classSample{private:inta,b,c;static

2、intd;//定义静态数据成员……}s1,s2,s3;abcs1s2s3abcabcdSample::静态数据成员是属于类的。2.静态数据成员的初始化——必需在类体外进行classSample{private:inta,b,c;staticintd;//定义静态数据成员……}s1,s2,s3;intSample::d=10;//初始化3.静态数据成员的使用例15.1静态数据成员的使用#includeclassSample{intn;staticintsum;//静态成员public:Sample(intx){n=x;}voidadd(){sum

3、+=n;}voiddisp(){cout<<"n="<

4、sum=2n=3,sum=5n=5,sum=10sizeof(a):4sizeof(b):4sizeof(c):4必须在类外初始化使用静态成员是为了解决对象之间的数据共享问题。n:2n:3n:5abcSample::sum:10如果将主函数改写为:voidmain(){Samplea(2),b(3),c(5);a.add();b.add();c.add();a.disp();b.disp();c.disp();}此程序的运行结果是:n=2,sum=10n=3,sum=10n=5,sum=1015.1.2静态成员函数静态成员函数属于类,就像静态数据成员属于类一样。(1)

5、只能通过类名调用静态成员函数。(2)在静态成员函数中只能访问静态数据成员。例15.2静态成员函数的使用#includeclassSample{inta;staticintb;public:Sample(intx){a=x;b+=x;}staticvoiddisp(Samples)//A{cout<<"a="<

6、//D}运行结果如下:a=2,b=15a=3,b=1515.2友元15.2.1友元函数(1)类具有封装性和信息的隐蔽性。(2)只有在类内可以访问私有成员。(3)在类外,只能通过公有函数接口才能访问私有成员。例15.3通过公有函数接口访问私有成员#include#includeclassPoint{intx,y;public:Point(inta=0,intb=0){x=a;y=b;}例15.3(续1)~Point(){}voidShow(){cout<<"Point("<

7、returnx;}intGety(){returny;}};doubledistance(Point&p1,Point&p2){//注意:此函数是普通函数参见returnsqrt((p1.Getx()-p2.Getx())*(p1.Getx()-p2.Getx())+(p1.Gety()-p2.Gety())*(p1.Gety()-p2.Gety()));}多次调用公有函数接口访问私有数据成员,这样带来的函数调用时间开销是比较大的。例15.3(续2)voidmain(){Pointp1,p2(1,1);cout<

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

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

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