跳到主要内容

简介

历史版本

  1. C++98: C++出现
  2. C++11: C++正式定稿
  3. C++14/17: 重要补充和优化
  4. C++20: C++现代化
现代C++

现代 C++ (指 C++11/14/17/20) 为传统 C++ 注入的大量特性使得整个 C++ 变得更加像一门现代化的语言。现代 C++ 不仅仅增强了 C++ 语言自身的可用性,auto 关键字语义的修改使得我们更加有信心来操控极度复杂的模板类型。同时还对语言运行期进行了大量的强化,Lambda 表达式的出现让 C++ 具有了『匿名函数』的『闭包』特性,而这一特性几乎在现代的编程语言(诸如 Python/Swift/... )中已经司空见惯,右值引用的出现解决了 C++ 长期以来被人诟病的临时对象效率问题等等。

标准C++组成

ISO的C++标准定义了两类实体:

  1. 核心语言特性(core language feature),例如变量和常量, 内置类型(如char和int)和循环(如for语句和while语句);
  2. 标准库组件(standard-library component),包括C++标准库和标准模版库STL. 比如容器(如vector和map)和I/O操作(如<<和getline())。
    1. C++ 标准库,提供了大量的函数,用于操作文件、字符串等。
    2. 标准模板库(STL),提供了大量的方法,用于操作数据结构等。

每个C++实现都提供标准库组件,它们其实也是非常普通的C++代码。换句话说,C++标准库可以用C++语言本身实现(仅在实现线程上下文切换这样的功能时才使用少量机器代码)。这意味着C++在面对大多数高要求的系统编程任务时既有丰富的表达力,同时也足够高效。

ANSI 标准

ANSI 标准是为了确保 C++ 的便携性 —— 您所编写的代码在 Mac、UNIX、Windows、Alpha 计算机上都能通过编译。 由于 ANSI 标准已稳定使用了很长的时间,所有主要的 C++ 编译器的制造商都支持 ANSI 标准。

C++是一种静态类型语言,这意味着任何实体(如对象、值、名称和表达式)在使用时都必须已被编译器了解。对象的类型决定了能在该对象上执行的操作。

参考

  1. cppreference
  2. C++ STL Tutorial
  3. learncpp
  4. Awesome C++
  5. 代码巴士
  6. C语言与C++学习
  7. C++ Tutorial
Loading Comments...