C++总结

C++98 比 C 多出来的东西(部分)

  • 类相关: 类 、抽象类、封装、继承、多态、类的构造与析构、运算符重载、静态成员函数、const 成员函数
  • 语法相关:友元、内联、 引用、模板、命名空间、缺省参数、初始化列表、函数重载
  • 标准模板库(STL):六大组件分别有容器、算法、迭代器、空间配置器、仿函数、适配器

C++11 新特性(部分)

  • 正则表达式
  • 随机数生成函数库
  • 原子操作
  • 标准线程库
  • 自动变量(auto)、新的for遍历
  • 新的容器类
  • 变参模板

C与c++对比

1、文件后缀不同
C 程序后缀为 * .c C++为*.cpp

2、返回值不同

C 中如果函数没有返回值,默认返回整型,C++ 中必须指定为 void

3、参数列表
在C中如果函数无参数列表,则可传递多个参数过去,编译器都会 PUSH,在C++中则必须指定为 void

4、缺省参数
C 不支持缺省参数、C++支持缺省参数。缺省参数需要注意的几点:

  • 带缺省值的参数必须位于最后
  • 声明或定义中只能在一处出现
  • 缺省值必须是常量或全局变量
  • 缺省值通过传值或常量

5、函数重载:C不支持,C++支持
需要注意的地方:

  • 同一作用域
  • 函数名必须相同
  • 参数必须不相同(类型、位置、数目)
  • 仅返回值不同不构成重载

6、引用与指针

相同点:底层汇编相同
不同点:

  • 引用定义必须初始化,指针不是必须
  • 引用一旦定义就不能改变,指针可以
  • 引用自增与指针自增不同
  • 可以有多级指针,没有多级引用
  • 没有NULL引用,有NULL指针
  • sizeof 含义不同,引用时所引用对象的大小,指针是指针本身占用大小

7、 命名空间

  • 防止命名冲突
  • 相同命名空间可以分割出现在不同文件中
  • 命名空间可以嵌套

8、输入输出

  • cout/cin
  • scanf/printf

你可能感兴趣的:(C++总结)