C++与C

C++保留了C语言原有的所有优点,增加了面向对象的机制。

C++是C语言的超集,C++对C的增强,表现在两个方面:

  1. 在原有面向过程的基础上,对C语言的功能做了不少扩充
  2. 增加了面向对象的机制

C++的标准库的中类和函数是在命名空间std中声明的,因此如果程序中需要用到C++标准库,就要用using namespace std 作声明。

C++对C的增强:

  1. register关键字(C++可以对register修饰的变量取地址,register无效,即使不使用register,也有可能会优化)
  2. struct关键字
  3. 类型检查更严格(C中缺少函数类型默认为int型,C++报错;C被调函数无形参,主调可传递参数,C++报错)
  4. 新增bool类型 (占一个字节)
  5. 三目运算符返回的是变量 (在C中返回的是一个常量)

C++对const关键字的实现采用了符号表的机制:

const修饰的变量存放在符号表中,以下两种情况会分配内存空间:

  1. 对const修饰的变量取地址(把const修饰的变量值复制到分配的内存空间)
  2. const修饰全局变量,该变量在其他文件中使用

const修饰的变量可以作为定义数组时的下标,这点在C里面是不能实现的。

C++与C

一个类中包含两种成员:数据和函数,分别称为数据成员和成员函数。

把一组数据和有权调用这些数据的函数封装在一起,组成一种称为 类 的数据结构。

 

类可以体现数据的封装性和信息隐蔽

具有类特征的变量称为 对象。

一个C++程序可以由一个程序单位或多个程序单位构成。每个程序单位作为一个文件。(C语言源程序的基本单位是函数)

一个程序单位可以包括以下几个部分:

  1. 预处理命令
  2. 全局声明部分
  3. 函数

类是C++新增的重要的数据类型,是C++对C的最重要的发展。

有了类,就可以实现面向对象程序设计中的封装、信息隐蔽、继承、派生、多态等功能。