一章C面向对象程序设计讲解材料

上传人:yulij****0329 文档编号:137237677 上传时间:2020-07-06 格式:PPT 页数:90 大小:1.76MB
返回 下载 相关 举报
一章C面向对象程序设计讲解材料_第1页
第1页 / 共90页
一章C面向对象程序设计讲解材料_第2页
第2页 / 共90页
一章C面向对象程序设计讲解材料_第3页
第3页 / 共90页
一章C面向对象程序设计讲解材料_第4页
第4页 / 共90页
一章C面向对象程序设计讲解材料_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《一章C面向对象程序设计讲解材料》由会员分享,可在线阅读,更多相关《一章C面向对象程序设计讲解材料(90页珍藏版)》请在金锄头文库上搜索。

1、本章主要知识点 (1) C+面向对象的程序实例 (2) 类与对象 (3) 继承与派生 (4) 运算符重载,本章导读C语言是一种结构化程序设计语言,它是面向过程的,在处理较小规模的程序时一般比较容易实现,而当程序规模较大时,C语言就显示出了它的不足。在这种情况下C+应运而生,C+语言是从C语言演变而来的,它保留了C语言的所有优点,同时也增加了面向对象的功能。现在C+已成为程序设计中应用最广泛的一种语言。, C语言程序设计 (Visual C+ 6.0环境),返回本书目录,第10章 C+面向对象程序设计,第10章 C+面向对象程序设计, C语言程序设计 (Visual C+ 6.0环境),返回本章

2、导读,10.2 类与对象,10.3 继承与派生,10.5 综合实训,10.4 运算符重载,10.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本章目录,10.1.2 C+语言概述,10.1.1 C+面向对象的程序实例,10.1 C+面向对象的程序实例,10.1.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,2. C+程序实例(2),3. C+程序实例(3),1. C+程序实例(1),float rectangle:GetArea() /成员函数的具体实现 return length*width; floa

3、t rectangle:GetPerimeter() /成员函数的具体实现 return 2*(length+width); void main() float l,w; coutlw; rectangle x(l,w); /定义一个矩形类对象 coutx.GetArea()endl; coutx.GetPerimeter()endl; /调用成员函数 ,10.1.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,10.1.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,实例1的功能是定义一个矩形类,

4、该类有长和宽两个数据成员,用来描述矩形的静态特征(属性),有构造函数用来用初始化类对象,另外还有计算面积和周长两个成员函数作为该类的外部接口,供类外的程序访问。当用户输入矩形的长和宽之后,将构造一个实例矩形,并输出矩形的面积和周长。 例如用户输入5,6,则输出结果为:3022,【例10.2】类的派生。(程序名为l10_2.cpp。) #include class rectangle /定义矩形类 public: void InitRect(float len,float wid) /定义类的成员函数 length=len; width=wid; float GetArea(); float G

5、etPerimeter(); private: /定义私有成员变量 float length; float width; ; float rectangle:GetArea() /成员函数实现 return length*width;,10.1.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,2.C+程序实例2,float rectangle:GetPerimeter() /成员函数实现 return 2*(length+width); class square:public rectangle /从矩形类中派生新类(正方形类) public:

6、void InitSquare(float b)InitRect(b,b); /新增的成员函数(初始化 ; /正方形) void main() square x; /声明正方形类对象 x.InitSquare(8); /调用正方形类新增的成员函数 coutx.GetArea()endl; /调用从矩形类中继承下来的成员函数coutx.GetPerimeter()endl; /调用从矩形类中继承下来的成员 /函数(GetPerimeter),10.1.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,10.1.1 C+面向对象的程序实例, C语言程序

7、设计 (Visual C+ 6.0环境),返回本节目录,实例2的功能是先定义一个矩形类,然后从该矩形类中派生出一个新的正方形类(正方形是矩形的一个特例)。程序中先声明一个正方形类对象,然后将其初始化为边长为8的正方形,再调用从矩形类中继承下来的计算面积和周长两个函数,计算出正方形的面积和周长。该程序的输出结果为: 6432,【例10.3】“+”运算符重载。(程序名为l10_3.cpp。) #include class rectangle /定义一个矩形类 public: rectangle(float len=0,float wid=0) /构造函数 length=len; width=wid

8、; float GetArea()return length*width; /成员函数(计算面积) rectangle operator +(rectangle a2) /将+运算符重载 rectangle a; /用于两个矩形对象相加 a.length=length; a.width=width+a2.GetArea()/length; return rectangle(a.length,a.width); ,10.1.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,3.C+程序实例3,private: /私有成员变量 float length

9、; float width; ; void main() rectangle x(5,9),y(5,6),z; /声明类对象 cout第一个矩形面积为:x.GetArea()endl; cout第二个矩形面积为:y.GetArea()endl; z=x+y; /对两个矩形相加 cout两个矩形面积之和为:z.GetArea()endl; ,10.1.1 C+面向对象的程序实例, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,实例3的功能是先定义一个矩形类,然后将“+”运算符重载为可以使两个矩形类对象相加。该程序的输出结果为:第一个矩形面积为:45第二个矩形面积为:30两个矩

10、形面积之和为:75,10.1.2 C+语言概述, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,由于结构化程序设计自身的不足,在20世纪80年代出现了面向对象程序设计方法,C+语言也由此而产生。 面向对象程序设计(Object-Oriented programming,简称OOP)设计的出发点就是为了能更直接的描述客观世界中存在的事物(即对象)以及它们之间的关系。面向对象程序设计是对结构化程序设计的继承和发展,它认为现实世界是由一系列彼此相关且能相互通信的实体组成,这些实体就是面向对象方法中的对象,而对一些对象的共性的抽象描述,就是面向对象方法中的类。类是面向对象程序设计的

11、核心。,10.1.2 C+语言概述, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,C+是目前最流行的面向对象程序设计语言。它在C语言的基础上进行了改进和扩充,并增加了面向对象程序设计的功能,更适合于开发大型的软件。C+是由贝尔实验室在C语言的基础开发成功的,C+保留了C语言原有的所有优点,同时与C语言又完全兼容。它既可以用于结构化程序设计,又可用于面向对象程序设计,因此C+是一个功能强大的混合型程序设计语言。 C+最有意义的方面是支持面向对象程序设计的特征。虽然与C语言的兼容性使得C+具有双重特点,但它在概念上和C语言是完全不同的,学习C+应该按照面向对象程序的思维去编写

12、程序。, C语言程序设计 (Visual C+ 6.0环境),返回本章目录,10.2.2 类的构造与封装,10.2.1 面向对象的基本概念,10.2 类与对象,10.2.3 创建对象,10.2.4 友元,10.2.5 模板,10.2.6 程序实训,10.2.1 面向对象的基本概念, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,1. 对象,从一般意义上讲,客观世界中任何一个事物都可以看成是一个对象。例如一本书,一名学生等。对象具有自己的静态特征和动态特征。静态特征可以用某种数据来描述,如一名学生的身高、年龄、性别等;动态特征是对象所表现的行为或具有的功能,如学生学习、运动、

13、休息等。 面向对象方法中的对象是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位,对象由一组属性和一组行为构成。属性是用来描述对象静态特征的数据项,行为是用来描述对象动态特征的操作序列。,许多对象具有相同的结构和特性,例如不管是数学书还是化学书,它们都具有大小、定价、编者等特性。在现实生活中,我们通常将具有相同性质的事物归纳、划分成一类,例如数学书和化学书都属于书这一类。同样在面向对象程序设计中也会采用这种方法。面向对象方法中的类是具有相同属性和行为的一组对象的集合。 类代表了一组对象的共性和特征,类是对象的抽象,而对象是类的具体实例。例如,家具设计师按照家具的设计图做成一把椅

14、子,那么设计图就好比是一个类,而做出来的椅子则是该类的一个对象,一个具体实例。拿【例10.1】中定义的矩形类来说,该类只是所有矩形的一个蓝本,它只是代表了矩形的一些特征,而该类的实例则是一个特定的矩形。,10.2.1 面向对象的基本概念, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,2类,10.2.2 类的构造与封装, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,1类的封装,类的封装就是将对象的属性和行为结合成一个独立的实体,并尽可能隐蔽对象的内部细节,对外形成一道屏障,只保留有限的对外接口使之和外界发生联系。类的成员包括数据成员和成员函数,分别描述

15、类所表达问题的属性和行为。对类成员的访问加以控制就形成了类的封装,这种控制是通过设置成员的访问权限来实现的。 在面向对象程序设计中,通过封装将一部分行为作为外部接口,而将数据和其它行为进行有效的隐蔽,就可以达到对数据访问权限的合理控制。把整个程序中不同部分的相互影响减少到最低限度。,10.2.2 类的构造与封装, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,2类的定义,类定义的一般格式为: class 类名称public: 公有数据和成员函数 /*外部接口*/ protected: 保护数据的成员函数 private: 私有数据和成员函数;,10.2.2 类的构造与封装, C语言程序设计 (Visual C+ 6.0环境),返回本节目录,关键字class说明了类定义的开始,类中所有的内容用大括号括起来。类的成员可分为三种级别的访问权限: public(公有的):说明该成员是公有的,它不但可以被类的成员函数访问,而且可以被外界访问,所以说公有类型定义了类的外部接口。 Protected(保护的):

展开阅读全文
相关资源
相关搜索

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

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