- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C第4章类和对象(二课件)
第4章 类和对象(二) 第3章介绍了类和对象的基本概念和使用方法。本章进一步对类和对象其他方面的内容进行讨论。这些内容包括自引用指针this、对象数组、对象指针和对象引用、静态成员和友元以及常类型在类和对象方面的一些应用。此外,对C++程序的多文件组成也作了介绍。本章将通过一些例子进一步熟悉类和对象在编程中的应用,从而进一步理解类和对象的作用。 ? 理解this 什么是指针 this是什么 一个类的成员函数由谁调用 this是谁的地址—对象 哪个对象 为何要用this this如何使用(隐式 显示) 4.1 自引用指针this 每一个类的成员函数都有一个隐藏定义的常量指针,我们把它称为this指针。 this指针的类型就是成员函数所属的类的类型。 每当调用成员函数时,它被初始化为被调函数所在类的对象的地址。也就是自动地将对象的指针传给它。不同的对象调用同一个成员函数时,编译器将根据成员函数的this指针所指向的对象来确定应该引用哪一个对象的数据成员。 在通常情况下,this指针在系统中是隐含地存在的。也可以将其显式地表示出来。 cout“x=”this-xendl; 例4.2 显示this指针的值。(显式) #includeiostream.h class A{ public: A(int x1){ x=x1; } void disp(){cout\nthis=thiswhen x=this-x;} private: int x; }; main() { A a(1),b(2),c(3); a.disp(); b.disp(); c .disp(); return 0; } 说明: this指针是一个const指针,不能在程序中修改它或给它赋值。 this指针是一个局部数据,它的作用域仅在一个对象的内部。 4.2 对象数组与对象指针 4.2.1 对象数组 所谓对象数组是指每一数组元素都是对象的数组,也就是说,若一个类有若干个对象,则把这一系列的对象用一个数组来存放。对象数组的元素是对象,不仅具有数据成员,而且还有函数成员 ?定义一个一维数组的格式如下: 类名 数组名[下标表达式]; 例如: exam ob[4]; //定义了类exam的对象数组ob. 与基本数据类型的数组一样,在使用对象数组时也只能访问单个数组元素,也就是一个对象,通过这个对象,也可以访问到它的公有成员,一般形式是: 数组名[下标].成员名 例4.4 对象数组的应用。 #includeiostream.h class exam{ public: void set_x(int n){ x=n; } int get_x(){ return x; } private: int x; }; main() { exam ob[4]; int i; for (i=0;i4;i++) ob[i].set_x(i); for (i=0;i4;i++) coutob[i].get_x()′ ′; coutendl; return 0; } 如果需要建立某个类的对象数组,在设计类的构造函数时就要充分考虑到数组元素初始化的需要; 当各个元素的初值要求为相同的值时,应该在类中定义出不带参数的构造函数或带缺省参数值的构造函数; 当各元素对象的初值要求为不同的值时需要定义带形参(无缺省值)的构造函数。 定义对象数组时,可通过初始化表进行赋值。 定义对象数组时,可通过初始化表进行赋值。 【例4.5】通过初始化表给对象数组赋值 #includeiostream.h class exam{ public: exam() { x=123;} exam(int n) { x=n;} int get_x() { return x; } private: int x; }; main() { exam ob1[4]={11,22,33,44}; exam ob2[4]={55,66}; exam ob3[4]={exam(11),exam(22),exam(33),exam(44)}; exam ob4[4]={exam(55),exam(66)}; ob4[2]=exam(77);
您可能关注的文档
最近下载
- 少先队基础知识竞赛试题(卷)参考资料.doc VIP
- 五年级上册数学小数混合运算复习西师大版.pptx VIP
- 慢性肾脏病饮食健康宣教.PPT
- 系列访谈实录之三设计篇.pdf VIP
- 威控特C919系列通用型矢量控制变频器用户手册V1.0.pdf VIP
- 最新人教版小学六年级上册数学《比的意义》课时达标练习题.doc VIP
- 2025-2026学年小学音乐人音版五线谱六年级上册-人音版(五线谱)教学设计合集.docx
- 建筑工程中的项目管理.pptx VIP
- 外国新闻传播史.pptx VIP
- 中国小肠镜临床应用指南中华医学会消化内镜学分会小肠镜和胶囊内镜学组(发布时间:2018-10).pdf VIP
原创力文档


文档评论(0)