1.1 C++简介
C++是一种使用非常广泛的编程语言,支持过程化程序设计、数据抽象、面向对象、泛型等多种程序设计方法。
1.1.1 C++历史
C++是由C语言演变而来的,是20世纪80年代初由贝尔实验室的Bjarne Stroustrup博士开发的。一开始C++是作为C语言的增强版出现的,从给C语言增加类开始,不断地增加新特性——虚函数、运算符重载、多重继承、模板、异常、RTTI、命名空间逐渐被加入进来。因此,C++的许多特性是从C语言中派生的,是C语言的扩展,但更重要的是提供了面向对象编程的功能。
C++语言的发展大概可以分为以下三个阶段。
■ 第一阶段(20世纪80年代到1995年):这一阶段是早期的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额。
■ 第二阶段(1995年到2000年):这一阶段C++推出了标准模板库(STL)、Boost程序库,并加入了对泛型程序设计的支持。
■ 第三阶段(2000年至今):这一阶段是C++发展历史上的新高峰,出现了以Loki、MPL等程序库为代表的产生式编程和模板元编程,这些新技术的出现和原有技术的融合,使C++成为当今主流程序设计语言中最复杂的一种。
1.1.2 C++标准
C++是具有国际标准的编程语言,通常称作ANSI/ISO C++。制定ANSI/ISO C++的标准工作开始于1990年。
■ 第一版:1998年国际化标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC 1988-1998。1998年是C++标准委员会成立的第一年,以后每5年视实际需要更新一次标准。
■ 第二版:在2003年准时发布,即ISO/IEC 1482/2003。
■ C++0x版:新标准的更新原定于2009年,目前一般称为C++0x,但是由于各界对新特性存在很大的争议,C++0x最终国际投票已于2011年8月10日结束,所有国家都投出了赞成票。国际化标准组织于2011年9月1日出版发布ISO/IEC 14882:2011,C++ 2011正式成为新的C++标准。
1.1.3 C++特性
C++语言具有如下几个特性。
■ 高效:C++是与C语言同样高效且具有可移植性的多用途程序设计语言,为保证语言的简洁和运行的高效,很多特性都是以库(如STL)或其他的形式提供的,而没有直接添加到语言本身。
■ 兼容性:与C语言尽可能兼容,藉此提供一个从C到C++的平滑过渡。
■ 广泛:支持多种程序设计方法,如结构化程序设计、面向对象程序设计、泛型程序设计等。
■ 跨平台:避免平台限定,C++中没有用于特定平台的限定。