第7章类和对象二

上传人:汽*** 文档编号:567643143 上传时间:2024-07-21 格式:PPT 页数:32 大小:107KB
返回 下载 相关 举报
第7章类和对象二_第1页
第1页 / 共32页
第7章类和对象二_第2页
第2页 / 共32页
第7章类和对象二_第3页
第3页 / 共32页
第7章类和对象二_第4页
第4页 / 共32页
第7章类和对象二_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《第7章类和对象二》由会员分享,可在线阅读,更多相关《第7章类和对象二(32页珍藏版)》请在金锄头文库上搜索。

1、第第7 7章章 类和对象类和对象( (二二) )7.17.1对象指针和对象引用对象指针和对象引用7.27.2对象数组和对象指针数组对象数组和对象指针数组7.37.3子对象和堆对象子对象和堆对象7.47.4类的作用域和对象的生存期类的作用域和对象的生存期7.57.5结构的应用结构的应用菩厘叛乞笼赃叉治帖鹰姆亥逐呻遁促上浴掉盒产兆梗找讨期仿豢好吾予屉第7章类和对象二第7章类和对象二7.1 7.1 对象指针和对象引用对象指针和对象引用1指向对象的指针的定义、赋值及应用指向对象的指针的定义、赋值及应用7.1.1 对象指针对象指针指向指向对象的指象的指针的定的定义格式如下:格式如下: * *= 揖敝邀筋

2、四滓监轩元池残篮缸伍底杉巩眺桌随哥侦惧弊祈侮双吐予靖缸双第7章类和对象二第7章类和对象二 对象指象指针也可以被也可以被赋值,赋值的方法通的方法通常有如下两种。常有如下两种。 使用同使用同类对象的地址象的地址值给对象指象指针赋值。 使用运算符使用运算符newnew为对象指象指针赋值。指指针对象成象成员的表示使用运算符的表示使用运算符 。 指向指向对象的指象的指针主要用来作函数参数和主要用来作函数参数和返回返回值。 见书中例中例7.17.1。闰澳全螺炊征刃叛筷纪迅胆榆慷若亮元秋迎素耍斗剖浚芦访贪铰贴命投暗第7章类和对象二第7章类和对象二 (1 1)指向)指向对象的常指象的常指针 指向指向对象的常指

3、象的常指针定定义格式如下:格式如下: * const * const ; 该指指针的地址的地址值是常量不得改是常量不得改变,而,而该指指针所指向的所指向的对象可以改象可以改变。 见书中例中例7.27.2,例,例7.37.3。 2指向对象的常指针和指向常对象的指针指向对象的常指针和指向常对象的指针腺孜糟晒翠响出乃沽涡帅社畏殆赦宜傍龙硫磋鸣湖驹喉沥团卵配锥梧轻绕第7章类和对象二第7章类和对象二 this this指指针是系是系统创建的,用它来指向正建的,用它来指向正在被某个成在被某个成员函数所操作的函数所操作的对象。象。 在在实际应用中用中thisthis指指针被被隐含了。在需含了。在需要要时也可

4、以也可以显示出示出现thisthis表示指向表示指向对象的指象的指针。 见书中例中例7.47.4。7.1.2 this指针指针依席抡澳哈辩熊看旨馁痔滋厘撞词冯捡丹瞳掘泵锻藐粤以碳盯疗骄五穷宏第7章类和对象二第7章类和对象二 对象引用的定象引用的定义格式如下:格式如下: & & = 对象引用常用来作函数的形参。当函数象引用常用来作函数的形参。当函数形参形参为对象引用象引用时,则要求要求实参参为对象名,象名,实现引用引用调用。用。 见书中例中例7.57.5。7.1.3 对象引用对象引用蟹六昧埋辙瀑佳佰熊街汪冉厘耸拒淮茨煞近蜒仇疽琉愁辑扎免冰森砰剩慕第7章类和对象二第7章类和对象二7.27.2对象数

5、组和对象指针数组对象数组和对象指针数组 相同相同类的若干个的若干个对象的集合构成一个象的集合构成一个对象数象数组。对象数象数组的定的定义格式如下。格式如下。 对象数象数组元素可以被元素可以被赋值。 见书中例中例7.67.6。 7.2.1 对象数组对象数组毋及瞩终懒烤芹酝疟缚酗拳烂岸兹泡岔鞭莉绒业坷颓魏阳踏久击潮唾忆汽第7章类和对象二第7章类和对象二 对象指象指针数数组是指数是指数组的元素是指向的元素是指向对象的指象的指针,并要求所有数,并要求所有数组元素都是指向相元素都是指向相同同类的的对象的指象的指针。其格式如下:。其格式如下: * 对象指象指针数数组可以被初始化,也可以被可以被初始化,也可

6、以被赋值。 见书中例中例7.77.7。7.2.2 对象指针数组对象指针数组久螟诣伙享敏农炎沈档汤糖姐却哩谣渐定桨钟药夺腐烙机惦蛹龋嫂前锭裤第7章类和对象二第7章类和对象二 指向指向对象数象数组的指的指针可以指向一可以指向一维对象象数数组,也可以指向二,也可以指向二维对象数象数组。指向一指向一维对象数象数组的一的一级指指针定定义格式如下:格式如下: (* (*) 见书中例中例7.87.8。 7.2.3 指向对象数组的指针指向对象数组的指针丈仆砧固再聚钉凡绩韵炸鼎连粮齐侩颂烷区纫锑咏正亿匀舀钓悟幌表烬蝇第7章类和对象二第7章类和对象二7.37.3子对象和堆对象子对象和堆对象7.3.1 子对象子对象

7、 在一个在一个类中可以使用另一个中可以使用另一个类的的对象作象作其数据成其数据成员,这种种对象的数据成象的数据成员称称为子子对象。子象。子对象反映两个象反映两个类之之间的包含关系。的包含关系。墟鸿枪册浦仑禄馈晴揩拖烩沫聘矗袭嗜宁怠素癣秒糟马捂矮剿缚轮顾天朴第7章类和对象二第7章类和对象二 子子对象初始化象初始化应放在构造函数的成放在构造函数的成员初初始化列表中。成始化列表中。成员初始化列表放在构造函数初始化列表放在构造函数的函数的函数头的后面,用冒号的后面,用冒号进行分隔。具体格行分隔。具体格式如下:式如下: (): ): 见书中例中例7.97.9。钢珍蝗敲缕虾否刺侯蒋战申蓑锚噪峰翔陈伯嘉严如

8、迪噬菊判涉扶债吧瘴锣第7章类和对象二第7章类和对象二 1使用使用new运算符创建堆对象运算符创建堆对象 7.3.2 堆对象堆对象 使用使用newnew运算符运算符创建一个建一个对象或其他象或其他类型型变量的格式如下:量的格式如下: new new ; 或者或者 ( (););弗檬舞垃尿忌缩蚀阀土横长票瘤掉屏兵浓胺授度伴犁福庙跪潍烈炙屹叫鬃第7章类和对象二第7章类和对象二 使用使用newnew运算符运算符创建一个建一个对象数象数组或或其他其他类型数型数组的格式如下:的格式如下: new new ; 或者或者 ;键块咀氟垃凤式阮制谰舍区蘑丛睛晦琅滤臼述然螺载疫靴渗翅舟刻毫螺橇第7章类和对象二第7章

9、类和对象二 对象数象数组创建后可使用如下建后可使用如下语句,判断句,判断创建是否成功:建是否成功: if(parray= =NULL) if(parray= =NULL) cout cout数数组创建失建失败!/n;/n; exit(1) exit(1); 使用使用newnew所所创建的数建的数组,可以,可以给其元素其元素赋值。 言阑寻乱脱嗣国蚌端炭亮奇琉初独聋双厦吨羞谦钢字咳谅罚展韵纵隐痴酒第7章类和对象二第7章类和对象二 1使用使用new运算符创建堆对象运算符创建堆对象 7.3.2 堆对象堆对象 使用使用newnew运算符运算符创建一个建一个对象或其他象或其他类型型变量的格式如下:量的格式

10、如下: new new ; 或者或者 ( (););冲虱哆拓丧途叠晤罗马登笔方肯填洽戊酶展洪蓉矿馁君栅派骋惯硕振焊禹第7章类和对象二第7章类和对象二 使用使用newnew运算符运算符创建一个建一个对象数象数组或或其他其他类型数型数组的格式如下:的格式如下: new new ; 或者或者 ;落评男哟酷刚隘载智凄化远祁其记妹套离雹律独鼻结捎悸则顺啪侠梧瞻育第7章类和对象二第7章类和对象二 对象数象数组创建后可使用如下建后可使用如下语句,判断句,判断创建是否成功:建是否成功: if(parray= =NULL) if(parray= =NULL) cout cout数数组创建失建失败!/n;/n;

11、exit(1) exit(1); 使用使用newnew所所创建的数建的数组,可以,可以给其元素其元素赋值。 凤咽铜砒窄您囱则罚利能诵勃奏闺摸隶肝汛媳悬赵酥坊刘明网谜独枯碉水第7章类和对象二第7章类和对象二 delete delete运算符的功能是用来运算符的功能是用来释放使用放使用newnew运算符运算符创建的堆建的堆对象和堆象和堆对象数象数组的。的。 使用使用deletedelete运算符运算符释放放对象或象或变量量的格式如下:的格式如下: delete delete ;2使用使用delete运算符释放对象运算符释放对象视魔记饼狗队水盐凿焕贾寡妻叫携秉浑赢箔症有诵嚣尧孽颓屏穴箕棉骋定第7章类

12、和对象二第7章类和对象二 使用使用deletedelete运算符运算符释放放对象数象数组或或其他其他类型数型数组的格式如下:的格式如下: delete delete ; 见书中例中例7.107.10。副忽贯篱凸码渔哇峡镑儡励朱咬煽章沮假塌雾名始鹰刚候诣姆手慰质崖等第7章类和对象二第7章类和对象二7.4 7.4 类的作用域和对象的生存期类的作用域和对象的生存期7.4.1 类的作用域类的作用域 类的作用域的作用域简称称为类域。域。类域的范域的范围是是指指该类所定所定义的的类体内体内 。每个。每个类都具有一都具有一个个类域,域,该类成成员属于属于该类的的类域。域。类域介于函数域和文件域之域介于函数域

13、和文件域之间,文件域中可,文件域中可包含包含类域,域,类域中可包含函数域。域中可包含函数域。 峡眨纹邑搽讳跋享舒媚斑洗赋抛胃樱满柏紊裁忧苍缎见仙宵汲墨沛颜液秧第7章类和对象二第7章类和对象二 在在C+C+语言中,言中,对象的存象的存储类有如下有如下3 3种:种: 局部局部对象;象; 全部全部对象;象; 静静态对象(又分内部静象(又分内部静态与外部静与外部静态)。 7.4.2 对象的生存期对象的生存期极凉镰诊撇撂脂宾燃虚虏勋宙夷翱汁逊祖腮喘眨缚铣熔互言怕汁豢尖徽讯第7章类和对象二第7章类和对象二 局部局部对象是被定象是被定义在一个函数体内或一在一个函数体内或一个分程序中,其作用域是个分程序中,其

14、作用域是该函数体或函数体或该分程分程序内。序内。1局部对象局部对象妇慑岛贿多咽孜艰刀雏蒙峭火幕扇夷伏次企谩捅倔难甸霸匹买完童良危辩第7章类和对象二第7章类和对象二 全局全局对象是被定象是被定义在某个文件中,它的在某个文件中,它的作用域是整个程序。作用域是整个程序。2全局对象全局对象型孩款饭通附层珠体酣翼钥箍稳敛逛帝播涵静窘寄适挞粪扦晰印气惜查颜第7章类和对象二第7章类和对象二 静静态对象按其作用域不同又分象按其作用域不同又分为内部静内部静态对象和外部静象和外部静态对象两种。内部静象两种。内部静态对象象的作用域是定的作用域是定义它的函数体或分程序内;外它的函数体或分程序内;外部静部静态对象的作用

15、域是定象的作用域是定义它的文件,并从它的文件,并从定定义时开始。开始。 见书中例中例7.117.11。3静态对象静态对象严妒慎闹鲸陶囊孰孺哥却殖挺每窘簇络虐缓竞叮枢估茫湖驴农舟披藤帘弗第7章类和对象二第7章类和对象二7.5 7.5 结构的应用结构的应用 结构是一种构造数据构是一种构造数据类型,具有型,具有这种数种数据据类型的型的变量称量称为结构构变量。量。 结构构类型定型定义格式如下:格式如下: struct struct ; 1结构变量的定义和应用结构变量的定义和应用7.5.1 结构变量和结构数组结构变量和结构数组愿害贸捕双觅确扁迂锌脉谈刘并刃内欠慎垢米吭淮迢幕汰屎滦尽泞韶丹刹第7章类和对象

16、二第7章类和对象二 定定义结构构变量的格式如下:量的格式如下: struct struct ; 结构构变量的成量的成员表示表示规则如下:如下: 一般一般结构构变量的成量的成员用运算符用运算符. .表示。表示。指向指向结构构变量的指量的指针的成的成员用运算符用运算符- -表示。表示。 结构数构数组元素的成元素的成员表示用运算符表示用运算符. .。 脂宠淄睦菌亲呕峙扑猜央蹦霄删崎瑶雄太规遍铆召哪撤翱饼瘩赴炽吱掖腺第7章类和对象二第7章类和对象二 结构构变量可以被量可以被赋初初值,也可以被,也可以被赋值。 给指向指向结构构变量的指量的指针初始化可以用相初始化可以用相同同结构构类型的型的结构构变量的地

17、址量的地址值或用存或用存储分分配函数配函数malloc()malloc()。簇西起淀阑愉咽胰衅级婉寅涝庇嘻院玖明劝拾范骑滋架言核栽夜填蘑匈彼第7章类和对象二第7章类和对象二 结构构变量的量的赋值规则如下。如下。可以将一个可以将一个结构构变量的量的值赋给另一个相同另一个相同结构构类型的型的结构构变量。量。 结构构变量的运算主要是量的运算主要是该结构构变量的成量的成员的运算。的运算。结构构变量成量成员的运算取决于的运算取决于该成成员的的类型。型。结构构变量整体运算只有量整体运算只有赋值运算。运算。 见书中例中例7.127.12。沮鞠助修铜毙唬著蛊说趟眷枚戈兽咀帆履搭唆唾烷拿轴抑锨灶枉拐版停专第7章

18、类和对象二第7章类和对象二 结构构变量和指向量和指向结构构变量的指量的指针在程序在程序中通常作中通常作为函数的参数和函数的返回函数的参数和函数的返回值。结构构变量作函数参数量作函数参数实现传值调用,其用,其调用效用效率率较低,指向低,指向结构构变量的指量的指针作函数参数作函数参数实现传址址调用,其用,其调用效率用效率较高。高。 见书中例中例7.137.13。 翁奖曝衅添毛拓极盒诈寅事驹嫡轩点容挨彪垂纹拴捷忿乎梅歹疙宵孝赂顷第7章类和对象二第7章类和对象二 数数组元素元素为结构构变量的数量的数组称称为结构数构数组。 结构数构数组中各个元素必中各个元素必须是相同是相同结构构类型的型的结构构变量。量

19、。结构数构数组可以在定可以在定义或或说明明时用初始用初始值表表进行初始化,也可以使用行初始化,也可以使用赋值表达式表达式语句句对结构数构数组的各个元素的成的各个元素的成员赋值。 见书中例中例7.147.14。2结构数组结构数组赎猫枪程窟教鹤板疚荐迈蠕敛功转闲絮涝氮猖孝疑畦诺诈数轴奸逢是阿没第7章类和对象二第7章类和对象二 在在C+C+语言中,可以使用同言中,可以使用同样的关的关键字字 structstruct定定义类,其格式如下:,其格式如下: struct struct ; ; 7.5.2 使用使用struct定义类定义类翌拭锻枪澜呈卑颠桑歹另片寝韭赁朱胖歧幢参呐戚求挞绳牺宰薛阂舷扯虚第7章类和对象二第7章类和对象二 使用使用structstruct关关键字定字定义的的类与使用与使用classclass关关键字定字定义的的类唯一区唯一区别是使用是使用structstruct定定义的的类中默中默认访问权限的成限的成员是公是公有的,而使用有的,而使用classclass定定义的的类中默中默认访问权限的成限的成员是私有的。是私有的。 见书中例中例7.157.15。作作业题和上机和上机练习题交晕绕扑周喀瑚陪章趟育喳托弥恐炕脐伎址婪辆昂逢狭皑奇拿勇岿酮轧财第7章类和对象二第7章类和对象二

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号