工作多年,重新读《C++ Primer Plus》,希望能够做到温故知新,做个读书笔记,记录一下。
第一章的内容不多,主要是对C++进行了简单介绍。
梳理下C++标准:C++98标准是第一个国际标准,获得了ISO,IEC和ANSI的批准,不但描述了已有的C++特性外,还添加了异常、运行阶段类型识别(RTTI)、模板和标准模板库(STL),2003年发布了C++标准第二版(被称作C++03),主要是修订错误、减少多义性,没有改变语言特征,因此我们使用C++98表示C++98/C++2003。2011年,ISO发布了ISO/IEC 14882:2011,被称为C++11, C++11中增加了很多特性,例如智能指针(std::shared_ptr, std::unique_ptr)、类型推导(auto, decltype)等。
ISO C++标准还吸收了ANSI C标准,因为C++应尽量是C语言的超集。即任何有效的C程序都应该是有效的C++程序。在ANSI C(也就是我们常说的C99)出现之前,C语言遵循Kernighan和Ritchie编写的《The C Programming Language》,通常被称为K & R C。ANSI C出现后,K & R C被称为经典C(Classic C),ANSI C中还定义了标准C库,C++也使用了这个库,同时C++也定义了C++标准类库。
关于C++文件的扩展名,UNIX系统可以使用cc, cxx或大写的C作为c++文件的扩展名,因为UNIX系统是大小写敏感的,所以通常用大写的C表示C++文件,小写的c表示ANSI C;GNU C++则可以使用cc,c++,cxx,cpp以及大写的C作为c++文件的扩展名。