From The Handbook of Object Technology (Editor: Saba Zamir). CRC Press LLC, Boca Raton. 1999. ISBN 0-8493-3135-8.
An Overview of the C++ Programming Language
概观C++程序设计语言
Bjarne Stroustrup
AT&T Laboratories
Florham Park, NJ07932-0971, USA
[原著者]:Bjarne Stroustrup(C++的设计者)
[翻译者]:K ][ N G of @rk ™
[kingofark的话]:翻译这位C++之父的大作真是对我的双重折磨,一来让一向对自己的英语水平颇有信心的我大受打击,二来也揭了我国语水平之“不足为外人道也”的老底。其实这也不是这次翻译才有的体会,早先就认识到了——所以忽然有一天发现自己其实是很自私、很无耻的,因为自己做翻译,无非是提高了自己的英语阅读能力;翻译出来的不堪入目的文章,且不说对不对得起原著者了,至少让很多高、低手看了以后被迫给我提意见和建议,最后还是我自己有所收获。吓!这不是自私是什么?这不是无耻又是什么?……当我把这篇文章无条件的(即强制性的)呈现给大家的时候,我已经面红耳赤,无地自容——所以,请大家唾弃我、批评我、教导我。我活该!……真诚的期待大家对我的批评。
摘 要
本文通过举例,介绍了C++在如下三个方面中的一些关键的概念:C++的设计、C++程序设计以及C++语言的技术性内容。C++是一门部分的面向系统编程、通用目的的程序设计语言;它支持高效的低级运算、数据抽象、面向对象程序设计以及范型程序设计。
1 简介以及文本概要(Introduction and Overview)
C++程序设计语言提供了一种用于计算和存储的模型,这个模型与大多数计算机所使用的计算和存储模型极为接近。C++的语言结构还提供了具有可适应性的、强大的抽象机制,用于对问题进行抽象;这种语言结构允许程序员创建和使用新的型别(type),而这些新的型别则可以与实际应用中所包含的概念相适应。由此可知,C++既支持面向低层次的程序设计风格,又支持面向高层次的程序设计风格。其中,面向低层次的程序设计风格是基于对硬件资源的直接操纵,以此来获得相当高的效率;而面向高层次的程序设计风格则是基于用户自定义的新的型别,以此来提供这样一种数据和计算模型:当完成一项任务时,计算机使用的这种模型与人类自身观察并完成该项任务时所使用的模型极为相似。这些面向高层次的程序设计风格通常被描述为数据抽象、面向对象程序设计以及范型程序设计。
本文围绕那些被C++直接支持的主要程序设计风格展开叙述,内容包括:
[§2 C++的设计和演化]:
介绍C++语言的设计目标和其演化发展的原则;
[§3 C程序设计模型]:
介绍C++所包含的C语言子集以及其它支持传统的系统程序设计风格的语言设施;
[§4 C++的抽象机制]:
介绍类(class)的概念及用法(即如何定义那些完全可以被当作内建型别来使用的新型别);说明抽象类如何被用来提供各种不同型别的对象之接口;描述在面向对象程序设计中使用到的类层次机制;以及用于支持范型程序设计的模板(template)机制;
[§5 大规模程序设计]:
描述namespace(名字空间)以及异常处理(exception handling)机制(在将许多独立的部件合成为完整的程序时,用它们来缓减整个过程的难度);
[§6 C++标准程序库]:
介绍一些标准设施,比如输入/输出流、string、container(例如vector、list和map)、范型算法(例如sort()、find()、for_each()等)以及对数学计算的支持等。
最后,本文还介绍了一些使用C++的应用,并给出了进一步阅读的建议。