数据结构c++.ppt
《数据结构c++.ppt》由会员分享,可在线阅读,更多相关《数据结构c++.ppt(60页珍藏版)》请在课桌文档上搜索。
1、1,C+语言的概要类、对象、构造函数与析构函数输入/输出函数、参数传递与函数返回值函数名重载与操作符重载动态存储分配友元函数与内联函数结构、联合与类,编程简介,C+,2,C+语言概要,C+源于C语言。1970年,贝尔实验室的Brian Kernighan和Dennis Ritchie首创了一种新的程序设计语言,取名为C语言。设计C语言的最初目的是编写操作系统。,3,C 语言是一个面向过程的语言。随着软件开发技术的进步,程序员们最终发现,把数据和施加在其上的操作结合起来,会得到更易于理解的程序,由此产生了面向对象的程序设计思想。1980年代初,美国 AT&T 贝尔实验室的Bjarne Strou
2、strup设计并实现了C语言的扩充、改进版本,C+语言诞生了!C+改进了C的不足之处,增加了对面向对象的程序设计的支持,在改进的同时,保持了C的简洁性和高效性。,4,/一个简单的C+程序(标准版本)#include using namespace std;int main()cout hello!;return 0;/正常返回,5,注释,C+的块注释格式源于C语言。注释开始于“/*”,结束于“*/”。行注释符以“/”开头。,6,#include 语句,C+将一些标准函数和变量说明放在头文件中。用户也可以定义自己的头文件。#include指令有两种格式:#include#include“头文件名
3、”,7,C+源程序中还可包括各种编译命令,这些命令被称为预处理指令,常用的除#include外,还有条件预处理指令#if、#ifndef 和#endif 等和宏替换指令#define。,8,#define 用来定义一个常量或替换宏,如:#define size 20/定义一个常量size,其值永远为20#define MAX(x,y)(x y)?y:x)/求x,y中的最大值经过预编译后,程序中所有出现 size 和 MAX(x,y)之处都会被 20 和(x y)?y:x)代替,如:int arraysize;int i=MAX(4,55);经预编译后会变为 int array20;int i=
4、(4 55)?55:4);,9,C+的数据声明,C+的数据声明将数据名与数据类型联系起来。其主要形式有:常数值:如25,13.4,“value is”,它们的内容保持不变。常量:数据声明时在变量名前冠以保留字const,如 const int MAX=500,可定义 一个常量。变量:数据类型的实例,在程序执行时可以改变其内容。,10,C+提供两大类数据类型:基本数据类型和复合数据类型。基本数据类型有 6 种:int、float、char、double、bool、void。复合数据类型包括结构(struct)、联合(union)、位域、枚举(enum)、类(class)和用户自定义类型。此外还有
5、由基本数据类型和复合数据类型引申而来的数据类型,包括数组、指针、引用等。,11,枚举:是声明一个整型常数序列的方式。例如,在程序开头做如下声明 enum Boolean FALSE,TRUE 则建立一个Boolean类型。指针:存放对象的存储地址,例如 int i=5;int*np;/np为一个指向整型量的指针 np=/k中存入np所指地址i的内容,12,引用:它用来给一个对象提供一个替代的名字。例如 int i=5;int,13,C+的类,C+的核心部分是类的定义。类定义体现了抽象数据类型的思想。为达到信息隐蔽的原则。规定对类的成员有三级存取:共有(public)私有(private)保护(
6、protected)在 public 域中声明的数据成员和函数成员(成员函数),它们构成类的界面部分。,14,在private域和protected域中声明的数据成员和成员函数构成类的私有部分,只能由该类的对象和成员函数,以及声明为友元(friend)的函数或类的对象才能访问它们。在protected域中声明的数据成员和成员函数,还允许该类的派生类访问它们;在private域中声明的数据成员和成员函数,则不允许该类的派生类访问它们。下面给出一个 point 类的声明。Point 类中 点的表示由两个整数变量 x,y 组成。类的用户不能直接访问它们。,15,#ifndef POINT_H#def
7、ine POINT_H/In the header file point.hclass Point/类定义private:/私有域 int x;/数据成员:点坐标 int y;public:/共有域 Point(int=0,int=0);/构造函数 Point(const Point/取y坐标,16,Point operator+(const Point#endif,17,例,对于Point类的输出友元函数的实现可以在源程序文件中给出,形为:ostream 这个函数把点p的值以“x,y”的格式送到strm指明的输出流中去。,18,C+中的对象,建立类的对象(亦称为实例化)时采用的方式类似于定义
8、C变量的方式,可以自动地,或静态地,或通过动态分配来建立。建立一个 Point类实例的语句是:Point p(6,3);自动地Point q;自动地static Point s(3,4);静态地Point*t=new Point(1,1);通过动态分配,19,构造函数,当遇到以上的每一个语句时,将隐式地调用一个构造(constructor)函数,这个构造函数属于一个与它同名的类。在Point类的定义中声明了两个构造函数,构造函数的参数用于初始化表达式的值。例如,当使用声明 Point p(6,3)建立 Point 类的对象 p 时,调用了构造函数 Point(int,int);通过以下函数定义
9、,将其x,y分量设定为6,3:Point:Point(int a,int b)x=a;y=b;Point:Point(int a,int b):x(a),y(b),20,构造函数可以定义默认值。例如 Point:Point(int a,int b):x(a),y(b)当定义实例时给定初始值,则该实例以给定初始值来初始化其数据成员 Point p(6,3);则有 x=a=6,y=b=3当定义实例时未给出初始值。则该实例以默认值来初始化其数据成员 Point q;则有 x=a=0,y=b=0,21,析构函数,当要放弃对象时,需隐式地调用另一个函数,叫做析构(destructor)函数,它属于名字相
10、同的类,但在名字前面加上了一个“”。例如 Point。为一个类可定义几个构造函数,但只能定义 一个析构函数。当控制要退出自动变量的作用域时,或当通过 delete 命令释放一个动态分配的变量时,就要调用析构函数。当main函数执行结束时,将释放静态声明的变量。一个析构函数用于在删除一个类的对象时做清除工作。,22,C+的输入/输出,在C+中执行输入/输出操作,需用#include预处理指令包括一个头文件。用它可支持C+的流(stream)操作。“流”是个简单的字符序列。在C+中有两个预定义的类istream和ostream,它们定义了输入流和输出流。基本输入/输出方式:键盘屏幕输入/输出文件输
11、入/输出,23,键盘屏幕输入/输出,在C中有用于定向到键盘输入设备、屏幕输出设备和错误文件的命令stdin、stdout和stderr。在C+中用cin,cout和cerr来定义键盘输入类、屏幕输出类和错误信息输出类。操作符 用于读入类istream的一个对象。,24,在下面程序中使用了流 cin,相继从标准输入设备上输入两个整型变量a和b,并将它们打印到标准输出设备上。在输出语句中最后输出的endl是C+的I/O操作符,它的用途是输出一个换行符并清空流。,#include int main()int a,b;cin a b;cout“a:”n“f:”f endl;return 0;,25,文
12、件输入/输出,C+中的文件输入/输出方式如下所示。在程序开头必须用预处理指令#include包含头文件,它定义了类ifstream、ofstream和fstream。要创建一个输入流,必须声明它为ifstream类的实例要创建一个输出流,必须声明它为ofstream类的实例执行输入和输出操作的流必须声明它为 fstream类的实例,26,#include#include#include int main()ifstream inFile;/inFile为输入流对象 ofstream outFile;/outFile为输出流对象 outFile.open(my.dat,ios:out);/建立输
13、出文件my.dat char univ=Tsinghua,name10;int course=2401,number;outFile univ course endl;/输出到my.dat,27,inFile.open(my.dat,ios:in);/打开输入文件my.dat if(!inFile)cerr name number;cout name:name endl;cout number:number endl;return 0;,28,在文件打开的操作中,指定的文件模式有以下几种:ios:app:把所有对文件的输出添加在文件尾。它只用于输出文件。ios:binary:文件以二进制方式打
14、开。此项缺省时文件以文本方式打开。ios:nocreate:若文件不存在则将导致打开操作失败。ios:out:表明该文件用于输出。此项可缺省。ios:in:表明该文件用于输入。此项可缺省。,29,C+中的函数,在C+中有两种函数:常规函数和成员函数不论哪种函数,其定义都包括 4 个部分:函数名、形式参数表、返回类型和函数体。,30,函数返回时可以通过引用方式,参看下面程序,此时在函数类型后面加上一 个“,31,C+中的参数传递,函数调用时传送给形参表的实参必须与形参在类型、个数、顺序上保持一致。参数传递有两种方式。一种是传值,这是缺省的参数传递方式;一种是引用类型。使用传值方式时,把实参的值传
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 c+

链接地址:https://www.desk33.com/p-229791.html