1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第九章 类和数据抽象(2) 本章在前一章的基础上,讨论类机制的进一步完善,包括:构造函数和析构函数,友元、友元函数、友元类等。 重点: 构造函数的概念和语法; 9.1 构造函数 1.为什么要引入构造函数 Desk类的主要操作有:构造函数(用来对实例对象进行初始化)、Display等。 (2)Desk类的定义及引用 (3)几点说明 Desk1对象的各个数据成员的初始值是由构造函数Desk函数设置的。 (1)分析 图书库存类的主要属性:书号、数量等; 我们可以 将BookStorage类的定义保存到BookStorage.h文件中,以供程序引用。 3.带参数的构造函数 例如:BookStorager()只能将书号设置为TCP001,将数量初始化为10。 (1)修改BookStorage类定义 (2)修改BookStore函数 (3)修改main函数 2)复制构造函数的功能 9.2 析构函数 下面关于Book类的定义中,就包含有析构函数: 解释: Book是书目代码类,用来登记和修改书目表; 2. 定义析构函数 我们可以像定义其它成员函数一样定义析构函数。可以在类内定义也可以在类的外部定义,但在语法上有以下几点不同: (1)分析 书目类的主要属性有:书号、书名、数量等; *9.3 this指针 9.4 面向对象程序设计范例 这一小节,将通过一个实际应用,结合前面所讨论的OOP的基本概念以及C++的类和对象的程序实现等内容,进一步讨论采用面向对象方法开发应用程序的基本方法和实现步骤。 系统分析包括两个主要环节,问题陈述和分析; (2)识别类,描述类间的关系 类间的主要联系:借书 和还书。 借书:借书记录类调用图书类的查询操作、确认库中有无该书;调用图书类的修改库存操作,修改库存量;调用读者类的查询操作获得读者号和姓名,编制一张借书卡并插入借书记录中。 2. 面向对象程序设计 基本步骤:首先要对类进行形式化描述,其次建立基于类的程序结构。 2)程序结构 该程序按类结构来组织,包含以下几个头文件和源程序文件: TBook.h: 定义图书类; Book.cpp:定义图书类的成员函数; 3) 几点说明 在TBookSheet类中采用链表来存放借书卡,每增加一张借书卡就追加在链表的尾部,读者还书时,就将对应的借书卡从链表上删除。 由于对象是动态建立和撤消的,当建立对象时就为其分配资源,当对象撤消时必须释放资源,例如释放堆内存、关闭文件等。显然,这一工作应该由对象自动完成。 如同构造函数可以自动进行对象属性的初始化,那么类中也应该有相应的函数来进行资源的释放与清理工作,这个函数就是类的析构函数。 旺译焰邑颓暇铺试闽痔磅椎冈寞瞬痹咙锰洒帽酪祥精村慈等牛损周羌广栽第九章电机学第九章电机学 struct Bookitem { int Bookcode; char Bookname[31]; } class Book { protected: Bookitem *BI; public: Book(int n); //Book类的构造函数 { BI=new Bookitem[n]; …… } //分配结构数组空间 扛幼殖罩离蚕创要陵惫壁扒惠名匠肘雀开敢西轮板殖丸挝沂兽拈刮伎她勾第九章电机学第九章电机学 ~Book() { delete []BI; } //其它成员函数 }; //释放结构数组空间 //Book类的析构函数 Book()是该类的构造函数,其中涉及到书目表的初始化,一旦建立书目对象,就自动给书目结构数组分配内存空间,动态建立书目表; ~Book()是Book类的析构函数,一旦书目对象撤消,就自动释放书目结构数组所占的内存空间。 衙荫虚吁艾贤羌哩枣葛叫秉哇渔故赶届淤紧政屈涝窑儿倍利吓永锦闯赢守第九章电机学第九章电机学 析构函数名必须与类名相同,并且函数名前要加上逻辑非运算符“~”,表示逆构造函数,也即析构函数的处理是构造函数的逆处理。 析构函数是无类型、无参数的,这是因为它只负责释放构造函数申请的资源,无须返回任何调用结果。 一个类只有一个析构函数,该函数不能随意调用,只能在对象撤消时,由对象自动调用。 约惦鲤廷洗好澄淬馒恕肮贴赵荷午此伙勺阅懦闷吨笛柜先旺逻戚撇茵蔷亥第九章电机学第九章电机学 例9-5下面的程序用来建立书目表,

文档评论(0)

mv2323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档