C及C++程序设计 第3版 教学课件 ppt 张富 第14章-C++概述

上传人:E**** 文档编号:89368582 上传时间:2019-05-24 格式:PPT 页数:70 大小:272.50KB
返回 下载 相关 举报
C及C++程序设计 第3版  教学课件 ppt 张富 第14章-C++概述_第1页
第1页 / 共70页
C及C++程序设计 第3版  教学课件 ppt 张富 第14章-C++概述_第2页
第2页 / 共70页
C及C++程序设计 第3版  教学课件 ppt 张富 第14章-C++概述_第3页
第3页 / 共70页
C及C++程序设计 第3版  教学课件 ppt 张富 第14章-C++概述_第4页
第4页 / 共70页
C及C++程序设计 第3版  教学课件 ppt 张富 第14章-C++概述_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《C及C++程序设计 第3版 教学课件 ppt 张富 第14章-C++概述》由会员分享,可在线阅读,更多相关《C及C++程序设计 第3版 教学课件 ppt 张富 第14章-C++概述(70页珍藏版)》请在金锄头文库上搜索。

1、,第二篇 C+面向对象程序设计,第14章 C+概述,了解面向对象程序的基本特征,如封闭性,继承性,多态性等。,14.1 面向对象的程序设计,14.1.1 传统的程序设计方法 在20世纪60年代诞生了结构化的程序设计方法。现代的BASIC,PASCAL和C都是结构化的程序设计语言。结构化的程序设计方法,将程序归纳成三种基本结构,即顺序结构,选择结构和重复结构。,结构化的语言和模块化的方法,使中等复杂的程序设计变得较为容易。 传统的程序设计方法的另一个问题是,函数或过程的实现与数据结构有关。,14.1.2 面向对象的程序设计 面向对象的程序设计(Object-Oriented Programmin

2、g,OOP)是在结构化程序设计基础上的进一步发展。这种方法使程序设计人员能够更好地理解和管理庞大而复杂的程序。,面向对象方法的基本特点可归纳为三点:封闭性,继承性,多态性。,14.2 面向对象方法的基本特征,14.2.1 对象 对象(Object)是OOP技术中的一个重要概念。对象是对客观世界的事物的描述,是数据和对这些数据进行操作的代码所构成的实体。数据可看作是对象的属性,用来描述对象的静态特征。,操作代码也称为方法(method),是对象所具有的功能,或者服务。方法或服务表现对象的行为能力或它所能提供的服务。每个对象可能有若干个方法,每个方法有对应的代码。,归纳起来,对象是系统中用来描述客

3、观事物的一个实体,它是构成系统的一个基本单元。一个对象由一组数据(属性)和方法(操作或功能)组成。,一个对象的方法和数据,可以是这个对象私有的,外界不能对它们直接访问。,对象属性这方面的特征,面向对象语言把对象的属性分为三种:公有的(public)、保护的(protected)和私有的(private)。,数据与操作数据的方法是结合在一起的。这种结合称为封装(encapsulation)。对象属性和方法的对外不可访问性,称为数据隐藏(data hiding)。,封装的含义,就在于,一是数据和操作是不可分割的整体,二是它的隐藏性。所谓数据隐藏,就是对象只保留有限的对外接口,而隐藏对象内部的细节。

4、,访问一个对象的过程,就是向对象发送一个消息(message)。对象的工作靠消息来激发,对象之间通过消息发生关系。对象会根据消息和它的方法做出不同的响应。 图14-1给出了对象的示意图。,图14-1 对象的示意图,14.2.2 类 类是对一组对象的抽象。或者说,类是对一组对象的相同数据和方法的定义或描述。这样对象就成为类的一个实例(instance)。,例如。学生张三是一个对象,学生李四也是一个对象,他们有共同的属性。于是,就可以将所有的学生抽象为一个“类”,如学生类。那么,对象张三就是学生类的一个实例。,根据类的这种概念,类实质上是一种新的数据类型,就像我们熟悉的整型、浮点型等数据类型一样。

5、不过类的数据结构比较复杂。一个对象(object)被说明为某一个类的变量,也就是某个类的实例。,类中定义的基本数据,描述对象的属性或状态;类中定义的方法,描述对象的行为和功能。同一个类的不同对象或实例,其状态可能是不同的,但功能都一样。类体现了数据与功能抽象的统一。,对一个类的每个对象,在内存都有自己的空间,用来保存各自对象的状态。而一个类的所有对象的操作(方法),都使用共同的代码。,用户定义一个类,也就是定义了一个新的数据类型。,14.2.3 继承(inheritance) 继承是面向对象方法的又一特征。所谓继承就是由一个类获得另一个新类的过程,在这个新类中包含(继承)了前一个类的某些特性,

6、增加了某些自己特有的特性。,继承使得程序设计人员可以在一个较一般的类的基础上快捷地建立一个新类,而不必从头开始设计每个类。因此,继承机制是一个强有力的编程工具,它大大降低了软件开发的复杂性、时间和费用,并使软件非常易于扩充。,高层的类通常定义较为一般化的概念,称为基类(base class)或父类。由它产生出来的类称为子类或派生类(derived class)。派生类从基类继承各种行为和状态,并引入自己的特征。派生类还能将自己的及从基类继承的特征传递下去。 图14-2给出类的继承结构图。,图14-2 类的继承结构,14.2.4 多态性(polymorphism) 多态性的意义就在于,类的对象能

7、各以不同的方式响应同一消息,即所谓的“同一接口,多种方式”。,继承机制与多态性相结合,使面向对象方法发挥出更强大的优越性。,14.3 C+对C语法的扩充,C+是在C语言基础上,为支持面向对象的程序设计而开发的。,14.3.1 变量的定义 1简单变量定义 变量的定义可以跟在任何其他语句的后面,只要求遵守“先定义后使用”的原则。,2结构变量的定义 在C中是这样定义结构变量的: struct exs ,int x; float y; ; struct exs a;,而在C+中,结构除了使用同样的方法外,还可以这样定义结构变量: exs a;,14.3.2 C+的函数原型 在C语言的源程序中,如果在函

8、数定义前引用该函数时,应该事先用其函数原型进行说明。但是返回值为整型的函数例外。,在C+程序中,对此规定更为严格。C+中规定,任何一个定义在后调用在前的函数,必须先用函数原型进行说明,返回值为整型的函数也不例外。,14.3.3 常数说明 1const修饰符定义常量 在C中,说明符const用来说明变量的值在程序中不能被改变。变量的值在初始化时给定。,在C+中,扩展了const的功能。 在C+中被说明为const的变量,是作为真正的常数看待。,2const指针 在C+中,在指针定义语句的类型前加const,就定义了指向常量的指针,表示指向的对象是常量。指针变量可以指向不同的常量,但它所指的内容(

9、常量)本身不能改变。,其格式为: const 数据类型符 *指针变量名;,在C+中还可以定义指针常量,其格式为: 数据类型符 *const 指针变量名=初值; 这样定义的指针变量,指针值不能修改,但可以对它所指向的对象的值进行修改。定义时必须初始化。,C+中第三种const指针是定义指向常量的指针常量,其格式为: Const 数据类型符 *const 指针变量名=初值; 用这种方法定义的变量,既不能改变指针变量的值,也不能改变该指针所指对象的值。定义时必须初始化。,14.3.4 C+的注释语句 C中注释语句在C+中仍然可以使用,但C+提供了自己的注释语句。,因此,在C+程序中,同时可以使用两种

10、注释语句: 第一种方法是传统C中使用的方法,即: /* 注释内容 */ 第二种方法是C+所特有的,其格式为: / 注释内容,14.3.5 C+的标准I/O操作 1数据输出 数据的输出是由系统提供的输出流对象cout完成的。对象cout定义在头文件“iostream.h”中。,所以,程序中使用时,要包含有头文件: #include 这个头文件与C中的“stdio.h”相对应,但不能互相代替。,输出语句的一般格式为: cout数据1数据2数据n; 其中“”为输出操作符。 符号“”又称为插入符。语句的功能是向标准输出设备上输出数据。数据可以是常量、变量或表达式。,2数据输入 数据的输入是使用系统提供

11、的输入流对象cin完成的,输入操作定义为提取过程,其提取符为“”。,输入语句的一般格式为: cin变量名1变量名2变量名n; 语句的功能是:当执行该语句时,程序等待用户从键盘输入相应数目的数据,用户以回车结束输入。,cin从输入流提取数据并传送给相应的变量。在输入多个数据的情况下,各数据之间可用空格隔开。每输入一个数据按一个回车键也可以。,14.3.6 作用域区分符 在C语言中讲述了变量作用域的概念。 C+引入了一个作用域区分符“:”,指示所要引用的变量是全局变量,使得同名全局变量可以在局部变量的作用域内也能被访问。它的使用形式为: :变量,14.3.7 函数参数的缺省 在C+中,函数的参数可

12、以有缺省值。当调用有缺省参数的函数时,如果没有给出相应的实参,则自动用相应的缺省参数值作为其实参。函数的缺省参数值,是在函数原型中给定的。,函数也可以是部分参数有缺省值,部分参数没有缺省值。,14.3.8 引用型变量 C+增加了一个引用型变量。其一般应用形式为: 数据类型 &标识符=变量;,其中的符号“&”是定义引用型变量的标识符,不是取地址运算符。语句的功能是定义标识符为“=”右边变量的别名。它们占用同一个物理空间,存储的内容也是同一个。任何对该引用变量的赋值,就是对变量的赋值。,引用型变量主要应用于函数传递。其作用相当于C中函数参数的地址传递。但C+的引用更方便、简洁。,14.3.9 内联

13、函数 在C语言中,用宏替换,可解决这个问题。,宏替换实质上是文字替换。C+引进了内联函数(inline function)的概念。内联函数在语法上与一般函数完全一样。只是在定义函数时,在函数名前面加上说明符“inline”。,内联函数的一般形式是: inline 数据类型 函数名(形参) 函数体 ,调用内联函数的方式与一般函数调用也没有什么不同。 内联函数与一般函数不同的是,在进行程序的编译时,编译器将内联函数的目标代码作拷贝并将其插入到调用内联函数的地方。这一点上很像是宏替换。,14.3.10 动态内存的分配 C+引进了new和delete运算符。它们的功能是实现内存的动态分配和释放。,动态

14、分配new一般有如下的三种形式: 指针变量=new 数据类型; 指针变量=new 数据类型(初始值); 指针变量=new 数据类型数量;,释放由new动态分配的内存时,用delete操作。它的一般形式是: delete 指针变量; 对于数组类型的情况,delete有如下的形式: delete 数量指针变量;,与C的内存动态分配和释放操作(malloc和free)相比,C+提供的动态分配有以下优点。 。,(1)new和delete 操作自动计算需要分配和释放类型的长度。这不但省去了用sizeof计算长度的步骤,更主要的是避免了内存分配和释放时因长度出错带来的严重后果。,(2)new操作自动返回需

15、分配类型的指针,无需使用强制类型转换。 (3)new操作能初始化所分配的类型变量,小 结,本章的主要内容,是帮助读者初步了解,什么是面向对象的程序设计。对面向对象程序的特点有一个粗浅的概念。为此目的,本章首先介绍了如下一些内容。,(1)传统程序设计方法与面向对象的程序设计方法的不同。 (2)面向对象方法的主要特点。 (3)面向对象技术的一些基本概念:类与对象;封闭性;继承性;多态性等。,在建立了面向对象方法的基本概念之后,本章详细介绍了C+在语法上对C的一些扩充。其中包括:变量的定义,作用域和引用, 函数原型,函数参数的缺省,内联函数,输入与输出,内存的动态分配与释放等。,Turbo C+对C程序和C+程序都能编译。编译系统对两种程序一般是通过其文件扩展名.c和.cpp来区分的。如果不使用这样的扩展名,则需要对集成环境进行必要的设置。,

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

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

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