网站大量收购闲置独家精品文档,联系QQ:2885784924

第章_类和对象的基础.ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第章_类和对象的基础.ppt

第7章 类和对象的基础 主讲:迟立颖 本章内容提要 类与对象的定义 对象的初始化 成员函数的特性 静态成员 友元 类的作用域与对象的生存期 一、类与对象的定义 什么是类? 类是一种新的数据类型。类是逻辑相关的函数和数据的封装,是对所处理的问题的抽象描述,所以,类是实现抽象类型的工具。 类(Class):是一种用户定义的类型,它包括定义的数据和其对应的操作(函数)。 使用对象将数据和操作进行封装(Encapsulation)。 什么是对象? 类实例化后便生成对象。 对象(Object):含有数据(对象的属性Attribute)又含有对数据的操作代码(Method)的一个逻辑封装体。 属性:描述对象特征的数据。 方法:对属性的操作。 面向对象编程 利用对象进行程序设计 1. 类的定义 类的定义 一般分为说明部分和实现部分。 说明部分:类中的成员 数据成员 成员函数的说明 实现部分 成员函数的具体定义 例如: 定义一个汽车类 型号、外壳、车轮等(数据成员) 启动、加速和停止等(成员函数) 类的定义格式: class 类名 {  public:    公有数据成员和成员函数的说明或实现  private:    私有数据成员和成员函数的说明或实现 protected: 保护数据成员和成员函数的说明或实现 };    各个成员函数的实现 例:坐标点类 问题:将坐标点与相应操作封装成类 例:坐标点类 (续上) 问题:将坐标点与相应操作封装成类 例:坐标点类 (内联函数形式) 问题:将说明部分和实现部分都在类体内定义 。 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: 对象指针名-成员名 或者(*对象指针名).成员名 对象指针名-成员函数名(参数表) 或者(*对象指针名).成员函数名(参数表) 例如: p-x,p-y,p-Getxy(a,b) 或者(*p).x, (*p).y, (*p).Getxy(a,b) 例7.1 问题:对象的定义和成员函数的调用。 对象定义的实质 定义一个类,就相当于定义了一种类型,它并不会接受或存储具体的值,只作为一个样板,只有被实例化生成对象以后,系统才为对象分配存储空间。 为节省内存,在创建对象时,只为每个对象的数据成员分配内存,而成员函数只是一次性存放在静态存储区中,为所有的对象共享。 例如: TPoint p1,p2; 二、对象的初始化 在类的定义中,无法用表达式初始化数据成员,因此,在声明一个对象时,对象的初始状态是不确定的,需要初始化。 对象初始化可以使用: 构造函数 析构函数 复制构造函数 1.构造函数 构造函数是一种特殊的成员函数,它主要用来为对象分配空间,给他的数据成员赋值(初始化)并执行对象的其他内部管理操作。 说明: 构造函数的名字必须与类的名字相同,并且构造函数无返回值,不允许定义构造函数的返回值类型,包括void类型。但允许有参数。 构造函数是成员函数,函数体可写在类体内,也可写在类体外。 构造函数可以重载。 例7.2 问题:构造函数的定义举例。 2.析构函数 析构函数也是类中的特殊成员函数,与类名字相象,在前加一个波浪号“~”。它没有参数,也没有返回值,在一个类中只能有一个析构函数。 析构函数执行与构造函数相反的操作。 通常用于释放分配给对象的存储空间,当程序超出类对象的作用域时,或者当对一个类指针使用运算符delete时,将自动执行析构函数。 说明: 和构造函数一样,如果不定义析构函数,编译程序将提供一个缺省的析构函数。对大多数类来说,缺省的析构函数就能满足要求,如果在一个对象完成其操作之前还需要做一些内部处理,则应显式的定义析构函数。 例7.3 问题:构造函数和析构函数举例。 类的构造函数和析构函数注意: 类的构造函数在程序中为对象创建时分配系统资源提供了初始化的方法; 析构函数为对象撤销时释放系统资源提供了方法。 无论用户是否定义构造函数和析构函数,它们都默认存在。 只要定义了新类,类的对象在创建和撤销时,构造函数和析构函

文档评论(0)

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

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

1亿VIP精品文档

相关文档