面向对象程序设计(C++)( 第二版) 课件 第6章 类与对象.ppt
文本预览下载声明
尚辅网 尚辅网 * * * * * * * * * * * * * * * * * * * * * * * * 尚辅网 6.6 类与指针 6.6.1 指向类对象的指针 类作为一种数据类型,可以定义变量(即对象),也可定义指针,即指向类类型变量(对象)的指针,称为指向类对象的指针或指向对象的指针。 ? 指向类对象指针的定义格式为: 类名 *指针变量名; ? 对象指针一旦指向某一对象后,就可以用它进行访问。通常使用“-”或“ (* ).”运算符: 指针变量 - 成员 (*指针变量).成员 尚辅网 6.6 类与指针 6.6.2 new和delete函数 new和delete是C++动态申请存储单元和删除存储单元的函数。对于动态申请存储空间,只能通过指针间接访问,而没有直接访问方式。 1.new运算符 new运算符常用的四种格式如下: (1) 格式一: 指针变量 = new 数据类型; 功能:申请一个数据类型变量的空间,返回该空间的起始地址,并赋给指针变量。 尚辅网 6.6 类与指针 (1) 格式二: 指针变量 = new 数据类型(值); 功能:申请一个数据类型变量的空间,用值初始化该空间,返回该空间的起始地址,并赋给指针变量。与格式一的区别在于给定变量初值。 (3) 格式三: 指针变量 = new 数据类型[表达式]; 功能:申请一个一维数组空间,数据元素类型是数据类型,元素的个数是表达式,返回该空间的起始地址,并赋给指针变量。 (4) 格式四: 指针变量 = new 数据类型[表达式1][表达式2]; 功能:申请一个二维数组空间,数据元素类型是数据类型,行数是表达式1,列数是表达式2,返回该空间的起始地址,地址类型是行指针,并赋给指针变量。 尚辅网 6.6 类与指针 2. delete运算符 delete运算符有两种格式: (1) 格式一: delete 指针变量; 功能:释放一个由指针变量指向的变量的空间。用于释放由new运算符格式一及格式二分配的空间。 (2) 格式二: delete [N] 指针变量; //N可省略 功能:释放一个由指针变量指向的数组的空间,该数组有N个元素。数组可以是一维或二维数组。 尚辅网 6.6 类与指针 6.6.3 this指针 this是一个隐含于成员函数中(或对象内)的特殊指针。该指针指向调用成员函数的当前对象。当对象调用成员函数时,系统自动将对象自身的指针(对象的地址)传递给成员函数,在成员函数中可直接使用该指针,指针名为this。 通常在成员函数中直接写变量名访问数据成员,实际上,由于成员函数中隐含着一个指针this,它指向调用成员函数的对象,所以,可以通过this指针访问它所指向的对象的成员。 尚辅网 6.7 情景应用——图书借阅管理系统 6.7.1 项目描述 1. 客户需求描述 某社区图书馆为了提高办公效率,减少因纸张浪费带来的办公开支,现欲开发一个图书借阅管理系统。该系统具有如下功能: ? 新进图书入库 ? 读者注册登记 ? 办理借还书手续 ? 为读者提供借书查询 ? 馆内库存图书查询 尚辅网 6.7 情景应用——图书借阅管理系统 2.实施方案 按照项目所涉及的技术与教材关联知识点,分三个版本开发完善。 (1) 第一版:利用面向对象程序设计方法,设计三个类:图书类Item、读者类Reader和图书馆操作类CMain,能模拟图书籍入库、读者注册、借还书等功能。 (2) 第二版:在第一版的基础上,增加杂志的借阅功能。利用继承和派生的知识,从书籍和杂志中抽象出共性,建立图书基类Book,将书籍和杂志作为其派生类。 (3) 第三版:在第二版的基础上,增加数据存储功能,完善图书借阅管理系统。 尚辅网 6.7 情景应用——图书借阅管理系统 6.7.2 类的设计 在一个信息系统内识别对象是最基本的,通过识别不同对象并进行抽象和分类,就能识别出相同属性和行为的对象归纳类。在图书借阅管理系统内,有书籍名Title、读者Author、借书证Code、管理人员借还书行为等对象和事件,他们分别各是一个类。确定图书借阅管理系统的各个类,并确定各个类对象的属性。 1. 图书类Item 图书馆有成千上万的书,每册书都是一个对象,它们形成图书类(Item)。图书类,从流通管理的角度来看,应包含书名Title、作读者Author、分类号IndexCode、条形码BarCode等属性。并包含为各数据成员赋值操作、读取条码(GetCode)、显示图书的基本信息等操作。 尚辅网 6.7
显示全部