第7章 类与对象的基础.ppt

  1. 1、本文档共60页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 类和对象的基础 本章内容提要 类与对象的定义 对象的初始化 成员函数的特性 静态成员 友元 类的作用域与对象的生存期 一、类与对象的定义 什么是对象(Object) ? 一、类与对象的定义 什么是类? 类(Class): 具有相同属性和方法的一组对象的抽象,是一种新的数据类型,包括定义的属性(数据)和其对应的操作(函数)。 例如:汽车类 颜色、型号、车牌号、厂家等(数据成员) 启动、加速和停止等(成员函数) 一、类与对象的定义 类和对象的关系 类是对象的抽象、对象是类的实例 1. 类的定义 类的定义格式一: class 类名 { 数据成员的说明 成员函数的定义 } 例:坐标点类 (内联函数形式) 问题:将说明部分和实现部分都在类体内定义 。 类的定义格式二: class 类名 { 数据成员的说明 成员函数的说明 } 成员函数的具体定义 例:坐标点类(说明部分) 例:坐标点类 (实现部分) 2.对象的定义与使用 对象的定义格式: 类名 对象名列表 例如: TPoint p1,p2; //定义TPoint类型的对象p1和p2。 TPoint *p=p1; //定义指向对象p1的TPoint类型的指针p。 TPoint c=p2; //定义c为TPoint类型对象p2的引用。 TPoint m[5]; //定义一个TPoint类型的对象数组。 2.对象的定义与使用 对象中数据成员和成员函数的访问方式1: 对象名.数据成员 对象名.成员函数名(参数表) 例如: p1.x p1.y p1.Setxy(2, 3) 2.对象的定义与使用 对象中数据成员和成员函数的访问方式2 : 对象指针名-成员名 对象指针名-成员函数名(参数表) 或 (*对象指针名).成员名 (*对象指针名).成员函数名(参数表) 例如: p-x p-y p-Getxy(a,b) 或 (*p).x (*p).y (*p).Getxy(a,b) 问题:对象的定义和成员函数的调用。 对象定义的实质 定义一个类,就相当于定义了一种类型,它并不会接受或存储具体的值,只作为一个样板,只有被实例化生成对象以后,系统才为对象分配存储空间。 为节省内存,在创建对象时,只为每个对象的数据成员分配内存,而成员函数只是一次性存放在静态存储区中,为所有的对象共享。 例如: TPoint p1,p2; 二、对象的初始化 在类的定义中,无法用表达式初始化数据成员,因此,在声明一个对象时,对象的初始状态是不确定的,需要初始化。 对象初始化可以使用: 构造函数 析构函数 复制构造函数 1.构造函数 构造函数是一种特殊的成员函数,它主要用来为对象分配空间,给他的数据成员赋值(初始化)并执行对象的其他内部管理操作。 说明: 构造函数的名字必须与类的名字相同,并且构造函数无返回值,不允许定义构造函数的返回值类型,包括void类型。但允许有参数。 构造函数是成员函数,函数体可写在类体内,也可写在类体外。 如果未定义构造函数,编译程序将提供一个缺省的构造函数。 构造函数可以重载。 问题:构造函数的定义举例。 2.析构函数 析构函数也是类中的特殊成员函数,与类名字相象,在前加一个波浪号“~”。它没有参数,也没有返回值,在一个类中只能有一个析构函数。 析构函数执行与构造函数相反的操作。 通常用于释放分配给对象的存储空间,当程序超出类对象的作用域时,或者当对一个类指针使用运算符delete时,将自动执行析构函数。 说明: 和构造函数一样,如果不定义析构函数,编译程序将提供一个缺省的析构函数。对大多数类来说,缺省的析构函数就能满足要求,如果在一个对象完成其操作之前还需要做一些内部处理,则应显式的定义析构函数。 问题:构造函数和析构函数举例。 类的构造函数和析构函数注意: 类的构造函数在程序中为对象创建时分配系统资源提供了初始化的方法; 析构函数为对象撤销时释放系统资源提供了方法。 无论用户是否定义构造函数和析构函数,它们都默认存在。 只要定义了新类,类的对象在创建和撤销时,构造函数和析构函数将会被调用。 3.复制构造函数 已有变量可以初始化另一个变量: int a=5; int b=a; 同样,已有对象也可以初始化另一个对象。 复制构造函数是一种特殊的成员函数,其功能是用一个已经初始化过了的对象去初始化另一个新创建的对象。 问题:调用复制构造函数的例子。 例7.4:调用复制构造函数的例子。 三、成员函数的特性 内联函数和外联函数 成员函数重载 设置参数的缺省值 1.内联函数

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档