C++与C
C++保留了C语言原有的所有优点,增加了面向对象的机制。
C++是C语言的超集,C++对C的增强,表现在两个方面:
- 在原有面向过程的基础上,对C语言的功能做了不少扩充
- 增加了面向对象的机制
C++的标准库的中类和函数是在命名空间std中声明的,因此如果程序中需要用到C++标准库,就要用using namespace std 作声明。
C++对C的增强:
- register关键字(C++可以对register修饰的变量取地址,register无效,即使不使用register,也有可能会优化)
- struct关键字
- 类型检查更严格(C中缺少函数类型默认为int型,C++报错;C被调函数无形参,主调可传递参数,C++报错)
- 新增bool类型 (占一个字节)
- 三目运算符返回的是变量 (在C中返回的是一个常量)
C++对const关键字的实现采用了符号表的机制:
const修饰的变量存放在符号表中,以下两种情况会分配内存空间:
- 对const修饰的变量取地址(把const修饰的变量值复制到分配的内存空间)
- const修饰全局变量,该变量在其他文件中使用
const修饰的变量可以作为定义数组时的下标,这点在C里面是不能实现的。
一个类中包含两种成员:数据和函数,分别称为数据成员和成员函数。
把一组数据和有权调用这些数据的函数封装在一起,组成一种称为 类 的数据结构。
类可以体现数据的封装性和信息隐蔽。
具有类特征的变量称为 对象。
一个C++程序可以由一个程序单位或多个程序单位构成。每个程序单位作为一个文件。(C语言源程序的基本单位是函数)
一个程序单位可以包括以下几个部分:
- 预处理命令
- 全局声明部分
- 函数
类是C++新增的重要的数据类型,是C++对C的最重要的发展。
有了类,就可以实现面向对象程序设计中的封装、信息隐蔽、继承、派生、多态等功能。