- 1、本文档共64页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 数据抽-类
本章内容 面向对象基本思想 类和对象 对象的初始化和消亡前处理 const成员 静态成员 友元 从面向过程到面向对象 比较书上关于“栈”的两种实现方案 面向过程: 数据的表示对数据的使用者是公开的,对栈的操作可以通过所提供的函数来实现,也可以直接在栈的数据表示上进行; 数据和对数据的操作相互独立,数据是作为参数传给对数据进行操作的函数; 需要显式地对栈进行初始化; 面向对象: 只能通过提供的函数来操作栈; 数据和对数据的操作构成了一个整体,数据操作是数据定义的一部分。 隐式地(自动)进行初始化。 面向对象程序设计的定义 面向对象程序设计: 把程序构造成由若干对象组成; 每个对象由一些数据以及对这些数据所能实施的操作构成; 对数据的操作是通过向包含数据的对象发送消息来实现; 对象的特征(数据与操作)由相应的类来描述; 一个类所描述的对象特征可以从其它的类继承。 面向对象的基本概念 对象 对象构成了面向对象程序的基本计算单位,它由接口、数据及其操作构成。 通信 通信是指对象间的消息传递,它是引起面向对象程序进行计算的唯一方式。 类 类描述了一组具有相同特征的对象。 继承 继承是指一个类所描述的对象特征的一部分可以从其它的类获得。 为什么要面向对象 面向对象的优势 数据抽象与封装(加强数据保护); 对模块化有更好的支持; 更好地支持程序复用; 能够适应软件功能的变化。 缺点: 程序的整体功能描述不明显。 面向对象程序设计的基本内容 对象与类(ObjectClass) 继承(Inheritance) 多态性(Polymorphism)与动态绑定(Dynamic Binding) 第二节 类的定义 数据成员 成员函数 成员的访问控制 类的定义 对象构成了面向对象程序的基本计算单位,而对象的特征则由相应的类来描述,要创建对象首先要定义它的类。 在C++中,类也是一种用户自定义类型,与其它自定义类型不同的是:定义类时需要显式地定义它的操作集。 类常称为抽象数据类型,类的使用者只需要知道类所提供的操作,而不需要知道类数据的具体表示。 类定义的例子 考虑一下: 如何定义一个描述日期的类? 分析: (1)日期类有哪些特征? 数据 操作 类的定义格式 类定义的例子 class Date { public: // 访问权限控制 void set(int y, int m, int d)//成员函数 { year = y; month = m; day = d; } bool is_leap_year() //成员函数 { return (year%4==0 year%100!=0)|| (year%400==0); } void print() //成员函数 { cout year . month . day; } private: // 访问权限控制 int year,month,day; //数据成员 }; 数据成员 类定义中的数据成员 说明描述了类的对象所包含的数据的类型; 它们可以是常量成员和变量成员。 数据成员的说明格式与结构成员说明格式相似。 数据成员可以说明访问权限。 类的数据成员的注意事项(一) 类定义中描述的数据成员属于类的对象,在创建对象前,类中说明的数据成员并不占有内存空间。 因此,在类定义中说明数据成员(某些静态数据成员除外)时不能给它们赋初值。(类似结构定义) 它们的初始化应在类的构造函数中指出(创建对象时会自动调用类的构造函数,参见6.4.1 节)。 类的数据成员的注意事项(二) 数据成员的类型可以是任意的C++类型(包括类,void除外)。 在说明一个数据成员的类型时 如果未见到相应的类型定义或相应的类型未定义完,则该数据成员的类型只能是这些类型的指针或引用类型。 静态数据成员除外。 成员函数 成员函数描述了对类定义中的数据成员所能实施的操作。 成员函数的定义可以放在类定义中,也可以放在类定义外。 把成员函数的定义放在类定义中是建议编译程序按内联函数处理它们。 成员函数(续) 如果在类定义外定义成员函数: 则首先应在类定义中给出成员函数的声明; 然后再在类定义外定义成员函数。 在类定义外部定义成员函数时,应在返回类型和函数名之间加上“类名::”,以区别于非成员函数(或称全局函数)或其它类的成员函数。 类成员函数名是可以重载的(析构函数除外),它遵循一般函数名的重载规则。 类定义放在头文件(.h)中,类外定义的成员函数则放在实现文件(.cpp)中。 成员的访问控制 在C++的类定义中,
您可能关注的文档
- 第6章 微分方模型仿真常微分方程的数值求解微分方程模型.ppt
- 第6章 建设工进度控制.ppt
- 第6章 建筑声境与材料.ppt
- 第6章 怀特的统化.ppt
- 第6章 成本与益.ppt
- 第6章 想象与维.ppt
- 第6章 房地产属登记制度与政策.ppt
- 第6章 成本计与财产.ppt
- 第6章 房地产发项目的规划设计及其评价.ppt
- 第6章 总线及机.ppt
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
文档评论(0)