C++程序设计 教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计

上传人:E**** 文档编号:89381713 上传时间:2019-05-24 格式:PPT 页数:63 大小:572.50KB
返回 下载 相关 举报
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计_第1页
第1页 / 共63页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计_第2页
第2页 / 共63页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计_第3页
第3页 / 共63页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计_第4页
第4页 / 共63页
C++程序设计  教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《C++程序设计 教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计》由会员分享,可在线阅读,更多相关《C++程序设计 教学课件 ppt 作者 连卫民 何樱 韩彦锋 等 第8章 类与对象的程序设计(63页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计,连卫民 主编,中国铁道出版社 2008.9,第8章 类与对象的程序设计,本章主要内容: 8.1 类(重点) 8.2 对象(重点) 8.3 类中的成员(重点) 8.4 友元函数和友元类 8.5 指向对象的指针 8.6 上机实训 本章教学目标: 了解友元函数与友元类的概念 熟悉类的基本概念、类和对象的定义方法 掌握类和对象的使用方法,对类中成员的访问方法,8.1 类,面向对象编程技术是一种全新的编程技术,是在结构化编程越来越难以满足软件开发和维护的需求下产生的,它开辟了现代编程技术的新局面。本节主要介绍引入类的目的和类的定义方法。 8.1.1 引入类的目的 从20世纪70年代开始,程

2、序设计人员开始追求实现“数据抽象”的概念,经过不断的研究和改进,于1980年推出了面向对象编程的方法。这为解决大型软件管理、提高软件可靠性、可重用性、可扩充性和可维护性提供了最有效的手段和途径。 面向对象的思想认为,客观世界是由各种各样的对象构成的,每种对象都有各自的属性和行为,不同对象之间的相互作用和联系构成了不同的系统。面向对象的方法就是要面对现实世界的实体,以对象为基本单位,分析、设计和实现一个系统。,第8章 类与对象的程序设计,8.1 类,8.1.1 引入类的目的(续) 在结构化程序设计和面对对象程序设计中,始终围绕编程中的一个中心,那就是“数据抽象”。在结构化程序设计中,对客观事物的

3、数据或者属性进行数据抽象,而在面向对象程序设计中,对客观事物本身进行数据抽象。举例来说,在C+中,对时间的年月日进行数据抽象。结构化程序设计中是用三个变量来表达,而在面向对象程序设计中,只用一个类变量来表达。当然,这里所提到的“数据抽象”是对面向对象程序设计最基本的认识。 在C+中,类是对结构体的扩展。在面向对象程序设计中,将数据(属性)和函数(行为)封装到称为类的软件包中。类是实现数据封装和抽象的工具,对象则是指客观世界无所不在的各种实体,是类的实例。类和对象构成了面向对象的程序设计的核心。,第8章 类与对象的程序设计,8.1 类,8.1.2 类的定义 1. 类定义的格式 class 类名

4、public: 成员函数或数据成员的声明或定义; private: 成员函数或数据成员的声明或定义; protected: 成员函数或数据成员的声明或定义; ;,第8章 类与对象的程序设计,8.1 类,8.1.2 类的定义(续) 1. 类定义的格式 说明: 定义类的关键字为class,其后跟类名,类名的命名遵循标识符的命名规则,通常类名首字母大写。 类定义包括声明和定义两部分,声明部分用来声明类的成员,定义部分用来定义成员函数的功能,像一般函数一样,成员函数的声明部分和定义部分合二为一。 类的成员包括数据成员和成员函数,其中数据成员可以为自身类对象以外的任意类型的数据。 public(公有)、

5、private(私有)和protected(保护)被称为访问权限修饰符,出现的顺序,次数没有规定,缺省时为private,它们决定了其后的成员可以被什么成份访问。 通常,成员函数被声明(或定义)为公有,可以在程序中引用;数据成员被定义为私有,只有成员函数或友元函数才可以引用。,第8章 类与对象的程序设计,8.1 类,8.1.2 类的定义(续) 1. 类定义的格式 比如: #include #include class Student / 定义一个学生类 private: / 私有数据 int Id; char Name30; char Sex; int Age; public: / 公有函数

6、void Display() / 输出数据函数 coutIdendsNameendsSexendsAgeendl; void Set(int id1,char *n,char s,int age1)/ 输入数据函数 Id=id1; strcpy(Name,n); Sex=s; Age=age1; ;,第8章 类与对象的程序设计,8.1 类,8.1.2 类的定义(续) 2. 成员函数的外部定义 类的定义是对数据成员和成员函数两个部分的定义,当这两部分都在类内定义时,将来定义的该类的对象,也包括这两部分。这样,使同一个类的不同对象拥有同样的函数代码,这是不必要的。为此可以把成员函数定义到类体外,将

7、来定义的该类对象共用函数代码。如图8-1所示。,第8章 类和对象的程序设计,8.1 类,8.1.2 类的定义(续) 如:#include #include class Student / 学生类student private: / 私有数据 int Id; char Name30; char Sex; int Age; public: / 公有函数 void Display(); / 输出数据函数 void Set(int id1,char *n,char s,int age1); /输入数据函数 ;,第8章 类与对象的程序设计,8.1 类,8.1.2 类的定义(续) void Student

8、:Display() / 在类体外定义函数时要求声明成员函数所属的类 coutIdendsNameendsSexendsAgeendl; void Student:Set(int id1,char *n,char s,int age1) Id=id1; strcpy(Name,n); Sex=s; Age=age1; ,第8章 类与对象的程序设计,8.2 对象,在面向对象程序设计中,类和对象是基本的单元。类是一种类型,不占存储空间,而对象是一种特殊的变量,占用存储空间。类的变量就是对象。 8.2.1 对象的定义 从20世纪70年代开始,程序设计人员开始追求实现“数据抽象”的概念,经过不断的研究

9、和改进,于1980年推出了面向对象编程的方法。这为解决大型软件管理、提高软件可靠性、可重用性、可扩充性和可维护性提供了最有效的手段和途径。 面向对象的思想认为,客观世界是由各种各样的对象构成的,每种对象都有各自的属性和行为,不同对象之间的相互作用和联系构成了不同的系统。面向对象的方法就是要面对现实世界的实体,以对象为基本单位,分析、设计和实现一个系统。,第8章 类与对象的程序设计,8.2 对象,8.2.1 对象的定义(续) 1对象的定义 (1)一般对象的定义格式: 类名 对象名列表; 如:Student s1,p; (2)对象指针和对象数组的定义格式: 类名 对象数组名或对象指针名列表; 如:

10、Student stu20,*st;,第8章 类与对象的程序设计,8.2 对象,8.2.1 对象的定义(续) 2对象的初始化与赋值 (1)对象的初始化 对象的初始化是通过构造函数来完成的。对象的初始化的方法和内容将在下面的构造函数中详细讲解。 (2)对象的赋值 一般对象的赋值为: Student s1; s1.Set(20060101,“WangMin“,F,22); 对象数组的赋值为: Student stu20; stu1.Set(20060101,“WangMin“,F,22); stu2.Set(20060102,“LiHai“,M,21);,第8章 类与对象的程序设计,8.2 对象,

11、8.2.2 对象的使用 (1)一般对象成员的引用 对象名.成员名 / 数据成员 对象名.成员名(参数表) / 成员函数 如: s1.Set(20060101,“WangMin“,F,22); s1.Display(); (2)通过指针引用对象成员 (*对象指针名).成员名 / 数据成员 对象指针名 - 成员名 / 数据成员 (*对象指针名).成员名(参数表) / 成员函数 对象指针名-成员名(参数表) / 成员函数,第8章 类与对象的程序设计,例8-1 Student类与对象的定义与使用,#include #include class Student / 定义一个学生类 private: /

12、私有数据 int Id; char Name30; char Sex; int Age; public: / 公有函数 void Display(); / 输出数据函数 void Set(int id1,char *n,char s,int age1); / 输入数据函数 ; void Student:Display() / 类体外定义函数时要求声明成员函数所属的类 coutIdendsNameendsSexendsAgeendl; ,第8章 类与对象的程序设计,例8-1 Student类与对象的定义与使用,void Student:Set(int id1,char *n,char s,int

13、 age1) Id=id1; strcpy(Name , n); Sex=s; Age=age1; void main() Student stu,*p; / 定义对象和对象指针 p= ,第8章 类与对象的程序设计,程序运行结果为: 20060102 LiHai M 21,8.3 类中的成员,本节主要介绍在类的定义中出现的各种成员,以及它们的作用。 8.3.1 构造函数 1构造函数的作用 类的数据成员不能在定义时初始化。因此,在使用该类的对象时,通过对象对成员函数的操作,来完成对数据成员的赋值。 2构造函数的定义 构造函数的定义格式为: 类名(参数列表) 对数据成员赋值; ,第8章 类与对象的

14、程序设计,例8-2 构造函数示例,#include class Circle / 定义一个圆类 private: double X,Y,R,Sum; public: Circle() / 空构造函数 Circle (double x1,double y1,double r1); / 有参构造函数 void Print() cout“圆心:(“X“,“Y“)“endl; cout“半径:“Rendl; void SumCirle(Circle p1,Circle p2) Sum=3.14*(p1.R*p1.R)+3.14*(p2.R*p2.R); void DispArea() cout“面积:

15、“Sumendl; ;,第8章 类与对象的程序设计,例8-2 构造函数示例,Circle:Circle(double x1,double y1,double r1) / 构造函数的外部定义 X=x1; Y=y1; R=r1; void main() Circle c1(1,2,3),c2(1,0,1),c3; / 对象初始化时调用构造函数 c1.Print(); c2.Print(); c3.SumCirle(c1,c2); c3.DispArea(); ,第8章 类与对象的程序设计,程序运行结果为: 圆心:(1,2) 半径:3 圆心:(1,0) 半径:1 面积:31.4,8.3 类中的成员,本节主要介绍在类的定义中出现的各种成员,以及它们的作用。 8.3.1 构造函数(续) 3构造函数对静态对象的作用 在程序中,若定义一个静态对象而没有指明初始化时,编译器会按缺省构造函数对对象的所有数据成员初始化为0或空。,第8章 类与对象的程序设计,例8-3 构造函数对静态对象的作用示例,#include class Circle private: double X,Y,R; public: Circle() / 缺省构造函数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号