5.3 对象的创建_第1页
5.3 对象的创建_第2页
5.3 对象的创建_第3页
5.3 对象的创建_第4页
5.3 对象的创建_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论