面向对象程序设计及C++(第3版)
上QQ阅读APP看书,第一时间看更新

1.3.2 C++语言与C语言的关系

C++语言由C语言发展而来,兼容C语言,并对C语言做了改进和扩充。它们之间的关系可以用继承改进来概括。

1.C++语言继承了C语言

C语言是C++语言的一个子集。C语言的词法、语法等绝大多数都可以直接用到C++语言中。例如,C语言中的类型、运算符和表达式在C++语言中都可以使用;C语言的语句也是C++语言的语句;C语言中的函数定义及调用在C++语言中也合法;C语言的预处理命令也可用于C++语言;C语言中的构造类型,如数组、结构体和联合体类型在C++语言中也可以使用,但是C++语言提供了更简洁灵活的用法;C语言的指针在C++语言中一样运用,但是C++语言在动态内存空间的管理上引入了更方便的方式,C++语言通过增加“引用”大大减少了不安全指针的使用;C语言中关于作用域的规则、存储类别的规定在C++语言中也都适用。

由于C++语言继承了C语言,所以C++语言保持了C语言简练明了的风格,也保留了C语言面向过程的特性。在使用C++语言进行面向过程的程序设计时,可以有多种方案,可以完全使用C语言风格,但是使用C++语言风格更为方便。掌握C语言的读者学习用C++语言进行面向过程的程序设计相当容易,只要重点学习C++语言对C语言的改进部分即可。

2.C++语言改进了C语言

C++语言虽然保留了C语言的风格和特点,但也针对C语言的某些不足做了改进。下面简单列举C++语言对C语言的一些改进内容,更详细的介绍见本书第2章。

(1)C++语言提供了与C语言不同的I/O流类库,方便了输入/输出操作。

(2)C++语言引入了名字空间,避免出现同名的问题。

(3)C++语言新增加了专用于处理逻辑值的bool类型,增加了string类型方便字符串的处理。允许定义无名联合、无名枚举类型,并且有新的用法。对结构体类型进行了扩充,结构体中可以有成员函数。

(4)C++语言允许函数的形式参数带有默认值,方便了函数调用。

(5)C++语言引进了函数重载和运算符重载机制,方便了编程。

(6)C++语言引进了“引用”的概念,可以通过变量的别名直接操作变量本身,而不必通过指向变量的指针间接操作变量,这样大大减少了指针的使用,提高了程序的安全性。

(7)C++语言提供了对异常的检查、处理机制,增强了程序的健壮性。

(8)C++语言利用指针使用new和delete运算符代替函数更方便地分配与释放动态内存空间。