- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C++程序设计 第9章 类和对象 9.1 面向对象的程序设计 OOP产生的背景 结构化程序设计的缺陷 程序的可重用性差(不能继承) 程序维护的一致性差(代码和数据分离) 软件危机的产生 20世纪80年代产生了面向对象的程序设计,即OOP OOP的基本原理 用问题领域的模型来模拟现实世界,从而设计出尽可能直接、自然地表示问题求解方法的软件 软件系统由对象组成,而对象则是完整反映客观世界事物具有不可分割的静态属性与动态行为的,并且它们是既有联系,又有变化发展的实体 对象 客观世界中任何一个事物都可以看成一个对象(object) 消息 对象之间通过发送和接收消息互相联系 方法 方法对应于对象的能力,是实现对象所具有功能操作的代码段 方法与消息是相关的:当对象收到一个消息时,它除了知道应该去做什么,还要知道该怎样做 C++中的对象 对象是由数据和函数(即操作代码)这两部分组成 类 类实质上是一种抽象,包含了一组对象的特征和行为,是对象的框架 对象是类的一个具体实例 抽象 抽象的过程是将有关事物的共性归纳、集中的过程 继承与重用 OOP技术的特征--封装 封装: 将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立 将对象中某些部分对外隐蔽,即隐蔽其内部细节,只留下少量接口,以便与外界联系,接收外界的消息 OOP技术的特征--多态性 所谓多态性(polymorphism)是指由继承而产生的相关的不同的类,其对象对同一消息会作出不同的响应 面向对象程序设计过程 一是设计所需的各种类和对象,即决定把哪些数据和操作封装在一起 基于对象的程序 9.2 类的声明和对象的定义 声明类类型 注意事项 类的任何成员都不得用关键字extern、auto和register进行修饰 不得在类声明中对数据成员使用表达式进行初始化 定义对象 类的成员函数的定义 类的成员函数性质 在类外定义成员函数 inline 成员函数 成员函数的存储方式 对象成员的引用 通过对象名和成员运算符访问对象中的成员 通过指向对象的指针访问对象中的成员 通过对象的引用变量来访问对象中的成员 9.3 构造函数 对象的初始化 构造函数的作用 在建立对象时自动调用构造函数 带参数的构造函数 构造函数的重载 无参的构造函数属于默认构造函数。一个类只能有一个默认构造函数 9.4 析构函数 什么是析构函数 析构函数执行的时间 析构函数说明 析构函数举例 调用构造函数和析构函数的顺序 9.5 对象的初始化和赋值 对象的初始化 对象的赋值 9.6 成员函数的调用 9.7 结构体 将不同类型的有联系的数据组合成一个有机整体的用户自定义数据类型—结构体 结构体类型--说明 student是一个类型名,它和系统提供的标准类型一样,用来定义变量 结构体变量的定义 先定义结构体类型,再定义结构体变量 一般形式 结构体变量定义--说明 不同的结构体类型有不同的结构,用户可定义许多种具体的结构体类型 结构体变量的初始化 形式一 结构体变量的引用 结构体变量不能整体引用,只能引用变量成员 类和结构体类型的异同 本次授课结束 谢谢 struct { 类型标识符 成员名; 类型标识符 成员名; ……………. }结构体变量={初始数据}; struct { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”}; 形式三 可以将一个结构体变量赋值给另一个结构体变量 结构体嵌套时逐级引用 成员(分量)运算符 优先级: 1 结合性:从左向右 引用方式: 结构体变量名.成员名 student1.birthday.month 引用规则 stu2=stu1; //正确 stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”}; //错误 如果已声明了Time类,并有以下定义语句: Time t1; //定义对象t1 Time t2=t1; //定义Time类引用变量t2,并使
文档评论(0)