C++11教程
+ -

C++11 新特性

2023-06-06 14 0

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的一些用法会不一样,这里需要注意。

0 篇笔记 写笔记

C++11 新特性
C++的设计目标C++98/03设计目标:比C语言更适合系统编程(且与C语言编程)支持数据抽象支持面向对象编程 (C++本来就是面向对象的)支持泛形编程 (这个是重点,从这里开始引入了STL,模板也得到了加强)C++11的目标使得C++成为更好的用于系统开发及库开发的语言使得C++成为更易于教......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

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

您的支持,是我们前进的动力!