清华大学出版社 TSINGHUA UNIVERSITY PRESS 第14章C+对c的扩充 141C++的特点 142最简单的C++程序 143C++的输入输出 144函数的重载 145带缺省参数的函数 146变量的引用类型5 147内置函数 148作用城运算符 149动态分配/撤销内存的运算符new和 delete 1410小结
14.1 C++的特点 14.2 最简单的C++程序 14.3 C++的输入输出 14.4 函数的重载 14.5 带缺省参数的函数 14.6 变量的引用类型5 14.7 内置函数 14.8 作用域运算符 14.9 动态分配/撤销内存的运算符new和delete 14.10 小结 第14章 C++对C的扩充
清华大学出版社 TSINGHUA UNIVERSITY PRESS 14.1C++的特点 C语言是结构化和模块化的语言,它是面向过程的。 在处理较小规模的程序时,程序员用C语言较得心 应手。但是当问题比较复杂、程序的规模比较大 时,结构化程序设计方法就显出它的不足。C程序 的设计者必须细致地设计程序中的每一个细节, 准确地考虑到程序运行时每一时刻发生的事情, 例如各个变量的值是如何变化的,什么时候应该 进行哪些输入,在屏幕上应该输出什么等。这对 程序员的要求是比较高的,如果面对的是一个复 杂问题,程序员往往感到力不从心。当初提出结 构化程序设计方法的目的是解决软件设计危机, 但是这个目标并未完全实现
14.1 C++的特点 • C语言是结构化和模块化的语言,它是面向过程的。 在处理较小规模的程序时,程序员用C语言较得心 应手。但是当问题比较复杂、程序的规模比较大 时,结构化程序设计方法就显出它的不足。C程序 的设计者必须细致地设计程序中的每一个细节, 准确地考虑到程序运行时每一时刻发生的事情, 例如各个变量的值是如何变化的,什么时候应该 进行哪些输入,在屏幕上应该输出什么等。这对 程序员的要求是比较高的,如果面对的是一个复 杂问题,程序员往往感到力不从心。当初提出结 构化程序设计方法的目的是解决软件设计危机, 但是这个目标并未完全实现
清华大学出版社 TSINGHUA UNIVERSITY PRESS 为了解决软件设计危机,在20世纪80年代提出了 面向对象的程序设计( Object-Oriented programming,简称OOP),在这种形势下,C++ 应运而生。C++是由贝尔实验室的 Bjarne Stroustrup博士及其同事在C语言的基础上开发成 功的。C++保留了C语言原有的所有优点,增加了 面向对象的机制。C++与C完全兼容,用C语言写 的程序可以不加修改地用于C++。从C++名字可以 看出它是对C的扩充,是C的超集。它既可以用于 结构化程序设计,又可用于面向对象的程序设计 因此它是一个功能强大的混合型的程序设计语言
• 为了解决软件设计危机,在20世纪80年代提出了 面向对象的程序设计(Object-Oriented programming,简称OOP) ,在这种形势下,C++ 应运而生。C++是由贝尔实验室的Bjarne Stroustrup博士及其同事在C语言的基础上开发成 功的。C++保留了C语言原有的所有优点,增加了 面向对象的机制。C++与C完全兼容,用C语言写 的程序可以不加修改地用于C++。从C++名字可以 看出它是对C的扩充,是C的超集。它既可以用于 结构化程序设计,又可用于面向对象的程序设计, 因此它是一个功能强大的混合型的程序设计语言
清华大学出版社 TSINGHUA UNIVERSITY PRESS 使用C++必须事先安装C+编译系统,在DOS系统 下可以使用 Turbo c+或 Borland o++。C源程序 的后缀一般为c,而C++的后缀一般为pp(为C plusplus的缩写,即C++)。在 Borland o++开发 环境中,既可以使用C语言,也可以使用C++语言。 它有两个编译系统,根据源程序文件名的后缀是c 还是cpp来决定使用哪个编译系统
• 使用C++必须事先安装C++编译系统,在DOS系统 下可以使用Turbo C++或Borland C++。C源程序 的后缀一般为.c,而C++的后缀一般为.cpp(为C plus plus的缩写,即C++)。在Borland C++开发 环境中,既可以使用C语言,也可以使用C++语言。 它有两个编译系统,根据源程序文件名的后缀是.c 还是.cpp来决定使用哪个编译系统
清华大学出版社 TSINGHUA UNIVERSITY PRESS 如上所述,面向对象程序设计方法主要是解决大 型软件的设计问题。只有编写过大型程序的人才 会体会到C的不足和C++的优点。C++是一种大型 语言,其功能、概念和语法规定都比较复杂,要 深入掌握它需要花较多的时间,尤其是需要有较 丰富的实践经验。用C+编程的主要是软件专业人 员。学校里一般专业的程序设计课程任务主要是 进行程序设计的基本训练,因此,我们认为当前 对大多数学生来说,应先掌握好C语言程序设计。 有了C语言的基础在需要时再学习C+不会太困难。 为了使读者对C++有初步的了解,以便为今后学习 C++打下基础,我们在进行本书的修订时特地增加 了第14章和第15章,介绍C++的初步知识
• 如上所述,面向对象程序设计方法主要是解决大 型软件的设计问题。只有编写过大型程序的人才 会体会到C的不足和C++的优点。C++是一种大型 语言,其功能、概念和语法规定都比较复杂,要 深入掌握它需要花较多的时间,尤其是需要有较 丰富的实践经验。用C++编程的主要是软件专业人 员。学校里一般专业的程序设计课程任务主要是 进行程序设计的基本训练,因此,我们认为当前 对大多数学生来说,应先掌握好C语言程序设计。 有了C语言的基础在需要时再学习C++不会太困难。 为了使读者对C++有初步的了解,以便为今后学习 C++打下基础,我们在进行本书的修订时特地增加 了第14章和第15章,介绍C++的初步知识
清华大学出版社 TSINGHUA UNIVERSITY PRESS C++对C的“增强”,表现在两个方面: (1)在原来面向过程的机制基础上,对C语言的功 能做了不少扩充。 (2)增加了面向对象的机制 本章介绍C+对C功能的扩充。第15章介绍有关面 向对象的内容
• C++对C的“增强”,表现在两个方面: • (1) 在原来面向过程的机制基础上,对C语言的功 能做了不少扩充。 • (2) 增加了面向对象的机制。 • 本章介绍C++对C功能的扩充。第15章介绍有关面 向对象的内容
清华大学出版社 TSINGHUA UNIVERSITY PRESS 142最简单的C++程序 例141输出一行字符 #include #include /本程序的作用是输出一行字符* void maino printf( This is a c++ program. \ n") cout<<" TThis is a c++ program.\n";∥本行输出一行字符 本程序和以前见过的C程序有什么不同?
14.2 最简单的C++程序 • 例14.1 输出一行字符。 #include #include /* 本程序的作用是输出一行字符*/ void main( ) { printf("This is a c++ program.\ n"); cout <<" This is a c++ program.\ n" ; //本行输出一行字符 } • 本程序和以前见过的C程序有什么不同?
清华大学出版社 TSINGHUA UNIVERSITY PRESS (1)在C++程序中一般习惯在主函数main前面加了 个类型声明符void,表示main函数没有返回值。 ·(2)除了可以用/,…*形式的注释行外,还允许 使用以∥开头的注释。从程序最后一行中可以看到 以/开头的注释可以不单独占一行,它出现在语句 之后。编译系统将∥以后到本行末尾的所有字符都 作为注释。应注意:它是单行注释,不能跨行。 C+的程序设计人员多愿意用这种注释方式,它比 较灵活方便。 ·(3)除了可以用prin数输出信息外,还可以用 coui进行输出。cou櫻要与运算符<<配合使用,程序 中cout的作用是将<<运算符右侧的内容送到输出 设备中输出
• (1) 在C++程序中一般习惯在主函数main前面加了 一个类型声明符void,表示main函数没有返回值。 • (2) 除了可以用 /*……*/ 形式的注释行外,还允许 使用以// 开头的注释。从程序最后一行中可以看到: 以//开头的注释可以不单独占一行,它出现在语句 之后。编译系统将// 以后到本行末尾的所有字符都 作为注释。应注意:它是单行注释,不能跨行。 C++的程序设计人员多愿意用这种注释方式,它比 较灵活方便。 • (3) 除了可以用printf函数输出信息外,还可以用 cout进行输出。cout要与运算符<<配合使用,程序 中cout的作用是将<<运算符右侧的内容送到输出 设备中输出
清华大学出版社 TSINGHUA UNIVERSITY PRESS (4)使用cout需要用到头文件 iostream. h,在程序的 第一行用#ncud命令将该头文件“包含”进来。 程序运行时输出: TThis is a c++ program This is a c+ program可以看到程序中最后两个语 句的作用相同,都是输出 TThis is a c++ program
• (4) 使用cout需要用到头文件iostream.h,在程序的 第一行用#include命令将该头文件“包含”进来。 • 程序运行时输出:This is a c++ program. • This is a c++ program.可以看到程序中最后两个语 句的作用相同,都是输出This is a c++ program
清华大学出版在 14.3C++ 的输入输出 GHUA UNIVERSITY PRESS 在C语言中文件不是由记录构成的。对文件的存取 是以字节为单位的,对一个C文件的输入和输出是 个字节流。输入和输出的数据流的开始和结束 只受程序控制而不受物理符号(如回车换行符) 的控制。这种文件称为流式文件。在输入操作中, 字节从输入设备流向内存,在输出操作中,字节 从内存流向输出设备。C++为了方便使用,除了可 以利用 printfFAscan函数进行输出和输入外,还增 加了标准输入输出流cout和cin。cout是由c和out两 个单词组成的,代表C++的输出流,cin是由c和in 两个单词组成的,代表C+的输入流。它们是在头 文件 iostream. h中定义的。在键盘和显示器上的输 入输出称为标准输入输出,标准流是不需要打开 和关闭文件即可直接操作的流式文件
14.3 C++的输入输出 • 在C语言中文件不是由记录构成的。对文件的存取 是以字节为单位的,对一个C文件的输入和输出是 一个字节流。输入和输出的数据流的开始和结束 只受程序控制而不受物理符号(如回车换行符) 的控制。这种文件称为流式文件。在输入操作中, 字节从输入设备流向内存,在输出操作中,字节 从内存流向输出设备。C++为了方便使用,除了可 以利用printf和scanf函数进行输出和输入外,还增 加了标准输入输出流cout和cin。cout是由c和out两 个单词组成的,代表C++的输出流,cin是由c和in 两个单词组成的,代表C++的输入流。它们是在头 文件iostream.h中定义的。在键盘和显示器上的输 入输出称为标准输入输出,标准流是不需要打开 和关闭文件即可直接操作的流式文件