版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、5.3对象的创建 1.实体、类、对象、实例 实体:客观世界与思维世界中存在的事物。 类:具有相同的构成形式的所有实体的构成形式的描述。 (它只描述它们包含有哪些数据,提供些什么操作,但仍未具体分配存储空间,也尚未实际存在) 对象:类的实例,具有类定义那样构成形式的客观存在的实体 。(简称:类类型的变量) 具有类类型的变量称为对象。(object) 实例:在程序运行时,通过为对象分配存储空间来创建对象。创建对象时,类被用作样板,对象为类的实例。(instance) 12.对象创建的例子例1设已定义了循环计数器类:class CIRCULAR_NUMBERSpublic: void set_mod
2、e(int min,int max); /设置循环计数器的上、下限 void set_value(int value); /设置循环计数器的当前值 int get_value(); /查询循环计数器的当前值 void increment(); /循环计数器加1 void decrement(); /循环计数器减1private: int min_val; /最小值 int max_val; /最大值 int current; /当前值;2定义了类之后,我们就可以用它来创建相关的对象:/创建角度循环计数器angleCIRCULAR_NUMBERS angle;/创建月份循环计数器monthCIR
3、CULAR_NUMBERS month;3例2创建时钟类对象的例子设已定义了时钟类:/功能:实现一个简单的时钟类class CLOCKpublic:CLOCK (int hh, int mm, int ss);/设置时间的当前值void update( );/刷新时间void show( );/显示时间private:CIRCULAR_NUMBERS hour;/时CIRCULAR_NUMBERS minute;/分CIRCULAR_NUMBERS second;/秒;我们就可以利用它来创建时钟对象(并初始化):CLOCK rolex(4, 15, 30);CLOCK cima(14, 0,
4、0);43.同一类不同对象的存储组织 1)类定义中的静态成员各自分配存储空间; 2)类定义中的非静态成员: 数据成员-各自分配存储空间。 成员函数-共享同一代码副本,共享存储空间。 原因:数据成员:描述对象的状态,不同对象可能具有不同的状态 。(如人的身高,不同人身高可能就不一样) 成员函数:作为类对外界提供服务的界面,是对象行为的描述,同一类的对象的行为应该是一致的。 5 3)要解决的问题(针对函数成员共享存储空间) 不同对象调用一个成员函数:不同对象分配存储空间时在本来分配成员函数的位置上安排一个转向指针,使它指向对应的成员函数。 不同对象调用同一成员函数,如何保证成员函数不会错误地访问另
5、一对象? C+通过为成员函数设置this指针来解决。 this指针C+编译对类的成员函数进行编译时,自动为每一个成员函数设置一个this指针。该指针的功能是:当一个对象调用一个成员函数时,这个成员函数的this指针就指向调用这一个成员函数的对象。如下页图所示,当对象 month调用成员函数set_mode( )时,成员函数set_mode( )的this指针就指向对象month。64)例子: 74.对象成员的引用 基本上采用2种方式(必须表明:是哪一个对象,是该对象中的哪个成员) : 1)对象名.成员名 如:angle.increment( ); 2)指向对象的指针-成员名 如前例:已知cla
6、ss Myclass 创建了对象和指向对象的指针:Myclass obj1,obj2,*p; /p是指向类Myclass的指针 令p指向obj1:p=&obj1; 则:obj1.x与p-x等价;obj1.getx( )与p-getx( )等价 /因p指向obj1 85.对象的生存期 对象的生存期概念与变量生存期概念一样,由对象声明决定。其中各个数据成员的生存期由对象生存期决定,对象存在时它就存在,对象被撤消时它就被撤消。9不同存储类型的对象生存期也不同,按生存期的不同对象可分为如下三种:1.局部对象:当对象被定义时,该对象被创建,当程序退出定义该对象所在的函数体或程序块时,释放该对象。2.静态对象:当程序第一次执行所定义的静态对象时,该对象被创建,当程序结束时,该对象被释放。3.全局对象:当程序开始时,创建该对象,当程序时释放该对象。局部对象是被主义在一个函数体或程序块内的,它的作用域小,生存期也短。静态对象是被定义在一个文件中,它的作用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 八路彩灯课程设计背景
- 2025年水性涂料市场拓展新型环保涂料研发中心建设项目可行性研究及发展建议
- 2025四川达州市开江县回龙镇人民政府招聘交通协管公益性岗位1人备考核心试题附答案解析
- 中国司法大数据研究院2026年招聘备考题库及一套答案详解
- 2025年甘肃省兰州达德职业学校招聘教师考试核心试题及答案解析
- 2025广西柳州柳北区锦绣街道办事处招聘公益性岗位1人考试重点题库及答案解析
- 《CB 3386.1-1992船舶电缆耐火贯穿装置技术条件》专题研究报告深度解读
- 2025年合肥共达职业技术学院专任教师公开招聘9人考试重点试题及答案解析
- 2025中国科学院上海硅酸盐研究所无机材料X射线结构表征组课题组招聘博士后1人笔试重点题库及答案解析
- 2026广东深圳北理莫斯科大学学生工作部学生管理服务岗招聘2人考试重点题库及答案解析
- 20252025年(完整版)三级安全教育真题试卷含答案
- 人教版2025-2026学年八年级上册数学期末考试模拟试卷
- 挂名法人代表协议合同
- 《软件工程》机考题库
- 2025重庆两江新区公安机关辅警招聘56人备考题库完整答案详解
- 老年患者肺部感染预防的护理措施
- 小小养殖员课件
- 公司员工意识培训课件
- 仓库统计员的工作总结
- 2025年广西公需科目一区两地一园一通道建设题库与答案
- 导游讲解员培训
评论
0/150
提交评论