C++ Primer的第三版结合了Stanley B.Lippman的实践经验和Josée Lajoie对于ANSI/ISO标准C++的深入理解。这本指导书的第三版已经被重新改写过,以便更加精确地讲述标准C++的特性和用法。在本书中,对于C++初学者特别有价值的是一些来自真实世界中的程序例子,它们说明了泛型程序(generic program)的设计、面向对象程序的设计、模板的用法,以及使用标准C++进行程序设计的方方面面。而且,本书也在适当的地方讲到了一些习惯用法以及效率指导。 第三版的变化分为四类: 1.涵盖了语言所增加的新特性:异常处理、运行时刻类型识别、名字空间、内置bool类型、新风格的类型强制转换。 2.涵盖了新的C++标准库,包括complex和string类型、auto_ptr和pair类型、顺序容器和关联容器类型(主要是list、vector、map、set容器),以及泛型算法。 3.对原来的文字作了调整,以反映出标准C++对原有语言特性的精炼、变化以及扩展。语言精炼的一个例子是,现在能够前向声明一个嵌套类型,这在以前是不允许的。语言变化的一个例子是,一个虚拟函数的派生类实例能够返回一个“基类实例的返回类型”的派生类。这种变化支持一个被称为clone 或factory的方法(关于clone()虚拟函数,见17.5.7节说明)。对原有语言特性进行扩展的一个例子是,现在可以显式地指定一个函数模板的一个或多个模板实参。(实际上,模板已经被大大地扩展了,差不多已经成为一个新特性!) 4.加强了对C++高级特性的对待和组织方式,尤其是对于模板、类以及面向对象程序设计。Stan从一个相对较小的C++提供者团体到一般的C++用户团体的转移,带来的一个影响是,他相信,越是深入地了解问题,则程序员越是能够高明地使用C++语言。因此,在第三版中,许多情况下,我们已经把焦点转移到如何更好地说明底层特性的概念,以及怎样最好地使用它们,并指出在适当的时候应该避免潜在的缺陷。