C++11 新特性

C++的设计目标

C++98/03设计目标:

  • 比C语言更适合系统编程(且与C语言编程)
  • 支持数据抽象
  • 支持面向对象编程 (C++本来就是面向对象的)
  • 支持泛形编程 (这个是重点,从这里开始引入了STL,模板也得到了加强)

C++11的目标

  • 使得C++成为更好的用于系统开发及库开发的语言
  • 使得C++成为更易于教学的语言(语言更加一致化和简单化)
  • 保证语言的稳定性,以及与C++03及C语言的兼容性

对比以上C++各个阶的设计目标,我们可以以这样理解,C98/03开启了C++泛形化的大门,让这门语言的拓展性有了更大的空间.但随首语言的发展,这个语言也越来越复杂了,所以C++11为了更好地让开发者上手,需要对语言进行简化.让开发者更好地进行任务开发,而不是纠结于C++的语法。

C++11的变化

  • 通过内存模型,线程,原子操作等来支持本地并行编程
    其实这个可以理解为C++为了更好地进行系统移植,将开发过程中用到的操作系统的一些工具进行了抽象封装,降低了语言对操作系统的耦合。
  • 通过统一初始化表达式,auto,declytype,移动语义等来统一对泛形编程的支持。
    模板,模板的模板,这些在98里需要知道类型的东西,现在都可以用一个auto来由语言自行推导,我们只需要写逻辑就行了。C++更加简单了,更加接地气了。
  • 通过constexpr,pod等更好地支持系统编程。(语言的系统增加。)
  • 通过内联命名空间,继续构造函数和右值引用等,以更好地支持库的构建。(还为为了方便编程,降低语言的上手难度)

C++11新引入的关键字

  • alignas
  • alignof decltype
  • auto(重新定义)
  • static_assert
  • using(重新定义)
  • noexcept
  • export(弃用,不过未来可能留作它用)
  • nullptr
  • constexpr
  • thread_local
    c++11对一些关键字进行了重定义,所以和C98的一些用法会不一样,这里需要注意。

声名
本教程是关于《深入理解C++11新特性解析与应用》的学习笔记,故本教程中会引用该书内的内容,特此说明。如本书的作者不愿该书的内容被引用,请联系站长进行删除:tsingchen2008@163.com
最后感谢该书的作者,让我能有机会与大家分享C++11的新特性。

取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!