附录A C++语言概要
慎重许愿,它有可能成真。
——俗语
本附录概述C++语言的一些重要特性。本附录的内容都是精心选择的,特别适合于那些希望接触一些超出本书主题之外内容的初学者。本附录的目标是简洁扼要,而非完整性。
A.1 一般内容
本附录的目的是作为补充参考资料,而不是像其他章节一样需要从头到尾仔细阅读。它(或多或少地)系统描述了C++语言的重要特性。本附录不是完整的参考文献,而只是概述。重点内容都是根据教学过程中学生提出的问题确定的。通常,你需要查看相关章节来获得更为详细完整的解释。本附录不追求与C++标准相同的精确性和术语,而是追求易于查阅。更详细的信息可参考Stroustrup的《The C++Programming Language》一书。ISO C++标准定义了C++语言,但其文档并不是为了初学者所编写的,并不适合入门阅读学习。不要忘记使用在线文档。如果你是在学习本书较早章节时查阅本附录,要有心理准备,一些内容看起来很“神秘”,不必担心,这些内容应该是在稍后章节中详细介绍的。
标准库的相关内容在附录C中介绍。
C++标准由ISO(国际标准组织)下属的一个委员会负责制订,标准制订过程中也与一些国家的标准组织进行了合作,如INCITS(美国)、BSI(英国)和AFNOR(法国)。当前的版本是ISO/IEC14882:2011C++程序设计语言标准。
A.1.1 术语
C++标准定义了什么是C++程序,及其语言特性的含义:
·符合标准的(conforming):如果按照标准定义,一个程序被认可是C++程序,则称之为符合标准的(或者通俗地讲,合法的或有效的)。
·实现定义的(implementation defined):程序可以(而且通常的确是)依赖于那些只对给定编译器、操作系统、机器架构等等才有明确定义的语言特性(如int占用的内存大小,以及'a'的数值等等)。这些由具体实现定义的特性在C++标准中都会列出,而在具体实现的文档中应该明确说明,其中很多特性是在标准头文件,如(参见附录C.1.1)中定义的。因此,符合标准的程序未必能移植到所有C++实现之上。 ...