C++发展历史

在“C with Class”阶段,研制者在C语言的基础上加进去的特征主要有:类及派生类、共有和私有成员的区分、类的构造函数和析构函数、友元、内联函数、赋值运算符的重载等。 ? ? 1985年公布的的C++语言1.0版的内容中又添加了一些重要特征:虚函数的概念、函数和运算符的重载、引用、常量(constant)等。
1989年推出的2.0版形成了更加完善的支持面向对象程序设计的C++语言,新增加的内容包括:类的保护成员、多重继承、对象的初始化与赋值的递归机制、抽象类、静态成员函数、const成员函数等。
1993年的C++语言3.0版本是C++语言的进一步完善,其中最重要的新特征是模板(template),此外解决了多重继承产生的二义性问题和相应的构造函数与析构函数的处理等。
1998年C++标准(ISO/IEC14882 Standard for the C++ Programming Language)得到了国际标准化组织(ISO)和美国标准化协会(ANSI)的批准,标准C++语言及其标准库更体现了C++语言设计的初衷。名字空间的概念、标准模板库(STL)中增加的标准容器类、通用算法类和字符串类型等使得C++语言更为实用。此后C++是具有国际标准的编程语言,该标准通常简称ANSI C++或ISO C++ 98标准,以后每5年视实际需要更新一次标准。
后来又在2003年通过了C++标准第二版(ISO/IEC 14882:2003):这个新版本是一次技术性修订,对第一版进行了整理——修订错误、减少多义性等,但没有改变语言特性。这个版本常被称为C++03。[1]
此后,新的标准草案叫做C++ 0x。对于C++ 0x标准草案的最终国际投票已于2011年8月10日结束,并且所有国家都投出了赞成票,C++0x已经毫无疑义地成为正式国际标准。先前被临时命名为C++0x的新标准正式定名为ISO/IEC 14882:2011,简称ISO C++ 11标准。C++ 11标准将取代现行的C++标准C++98和C++03。国际标准化组织于2011年9月1日出版发布《ISO/IEC 14882:2011》,名称是:Information technology — Programming languages — C++ Edition: 3


日期 事件
1990年 The Annotated C++ Reference Manual, M.A.Ellis和B.Stroustup著。主要描述了C++核心语言,没有涉及库
1998年 第一个国际化的C++语言标准:IOS/IEC 15882:1998。包括了对核心语言及STL、locale、iostream、numeric、string等诸多特性的描述
2003年 第二个国际化的C++语言标准:IOS/IEC 15882:1998。核心语言及库与C++98保持了一致,但包含了TC1(Technical Corrigendum1,技术勘误表1)。自此,C++03取代了C++98。
2005年 TR1(Technical Report l,技术报告1):IOS/IEC TR19768:2005。核心语言不变。TR1作为标准的非规范出版物,其包含了14个可能进人新标准的新程序库
2007年9月 SC22注册(特性)表决。通过了C++0x中核心特性
2008年9月 SC22委员会草案(Committee Draft,CD)表决。基本上所有C++0x的核心特性都完成了,新的C++0x标准草稿包括了13个源自TR1的库及70个库特性,修正了约300个库缺陷。此外,新标准草案还包括了70多个语言特性及约300个语言缺陷的修正
2010年3月 SC22最终委员会草案(Final Committee Draft,FCD)表决。所有核心特性都已经完成,处理了各国代表的评议
2011年11月 JTC1 C++11最终国际化标准草案(Final Draft International Standard,FDIS)发布,即IOS/IEC 15882:2011。新标准在核心语言部分和标准库部分都进行了很大的改进,这包括TR1的大部分内容。但整体的改进还是与先前的C++标准兼容的
2012年2月 在ANSI和ISO商店可以以低于原定价的价格买到C++标准