第九讲 C++类 课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章 类和数据抽象 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类中采用链表来存放借书卡,每增加一张借书卡就追加在链表的尾部,读者还书时,就将对应的借书卡从链表上删除。 析构函数名必须与类名相同,并且函数名前要加上逻辑非运算符“~”,表示逆构造函数,也即析构函数的处理是构造函数的逆处理。 析构函数是无类型、无参数的,这是因为它只负责释放构造函数申请的资源,无须返回任何调用结果。 一个类只有一个析构函数,该函数不能随意调用,只能在对象撤消时,由对象自动调用。 例9-5下面的程序用来建立书目表,并且程序运行 结束时,自动撤消之(释放表空间)。 书目类的主要操作有:建立书目表,由构造函数自动完成;输入书目信息,由input成员函数完成;显示书目表,由display成员函数完成。 (2)定义书目类,并保存到Tbook.h文件中 struct Bookitem { int Bookcode; char Bookname[31]; int amount; }; class Book { protected: Bookitem *BI; public: Book(int n) //Book类的构造函数 { BI=new Bookitem[n];//分配结构数组空间 }; ~Book() //Book类的析构函数 { delete []BI; //释放结构数组空间 }; void display(int n); void input(int n); //其它成员函数 }; #include iostream.h #include TBook.h void Book::display(int n) { int i; for (i=0;in;i++) { cout 书号 BI[i].Bookcode; cout 书名 BI[i].Bookname endl; cout 数量 BI[i].Amount endl; } } void Book::input(int n) { int i; for (i=0;in;i++) { cout 书号:; cin BI[i].Bookcode; cout

文档评论(0)

0520 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档