购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 C++概述

C++语言是美国贝尔实验室的Bjarne Stroustrup博士和他的同事在C语言的基础上,借鉴了Simula语言面向对象的机制,于20世纪80年代初开发出来的一种过程性和对象性结合的程序设计语言。最初称为“带类的C”,1983年,Rick Mascitti将其更名为一个有双关语的符号——“C++”。

1.3.1 C++语言发展历程

最初,Stroustrup使用了一个C++到C的编译器程序,将C++源代码翻译成C代码,然后通过标准的C编译器将其转化成二进制代码。随着C++的日渐普及,才出现了独立的C++编译器,直接将C++代码编译成目标代码。这种方式突出了C++“由C语言而来,却不同于C语言”的独立特点。

C++灵活而强大的功能,很快就受到了计算机软件厂商的青睐,并不断对C++进行细化,促进了C++的发展。虽然多数公司和科研单位都希望自己的C++版本能和其他版本兼容,但如果没有一个标准的出台,这将很难做到。为此,美国国家标准局在1990年设立了一个委员会(ANSI X3J16),专门负责C++标准的制定。ANSI/ISO C++国际标准第一版于1998年正式发布,2003年又发布了C++国际标准第二版。新的标准是对第一版的整理——修订错误,减少歧义等,并没有改变语言特性。最新一版的C++被称为C++0X(也被称为C++11),其中核心语言的领域被大幅改善,包括多线程支持、泛型编程、统一的初始化以及表现的加强。本书所有介绍和实例代码都是基于新的C++国际标准的。

C++程序具有很好的可移植性。换言之,C++程序的设计和编码不再拘泥于不同的操作系统,在Windows下编译无误的代码,在UNIX下同样可以顺利编译并运行。

1.3.2 C++语言特点

C++语言是以C语言为基础扩充、发展起来的一种优秀的通用程序设计语言,它保存了C语言的紧凑、灵活、高效和移植性好的特点,又吸收了其他程序设计语言的优秀特性。从Simula中吸收了类的机制,从Algol中吸收了运算符重载、引用和在局部的任何地方声明变量,综合了Ada的类属和异常处理机制。

C++语言是C语言的一个超集,是一门混合型的语言,既支持传统的结构化程序设计,又支持面向对象的程序设计,这是C++语言成功流行开来的一个重要原因。

读者可能会产生疑问,既然面向对象的程序设计方法比结构化的程序设计方法先进许多,为什么C++语言仍旧支持后者,而不愿意成为一门纯粹的面向对象的程序设计语言呢?

事实上,程序员们长期采用结构化的程序设计方法,积累了许多宝贵的经验,而且结构化程序设计方法在小型软件项目的开发设计上仍然很适用,完全否定这种设计方法也是不恰当的。C++作为一门混合型语言,在增加了对面向对象方法的支持的同时,还继承了传统程序设计语言C的优点,克服了其不足之处,使得自身既适用于结构化程序设计,又能满足面向对象程序设计的要求,这就符合广大程序员逐步更新其程序设计观念和方法的要求,从而很快流行起来。

说明 在学习C++前,是否需要学习C语言呢?答案是不需要,把C++当成一门新的语言来学习。本书完全适用于没有C语言基础的读者,甚至是没有学习过编程、没有写过一行代码的读者。本书致力于培养读者用C++的思维方式去解决问题的能力。

1.3.3 C++程序开发基本过程

下面开始我们的编程之旅。开发一个C++程序,首先要建立问题的模型,根据具体问题的特点,选择过程模型或者对象模型,并将模型实现为源程序。

同其他高级语言一样,要想得到可以执行的C++程序,必须对C++源程序进行编译和链接。C++程序编译链接的过程如图1-3所示,大体有以下几个步骤。

图1-3 C++程序编译链接的过程

·编辑(Edit):使用文本编辑工具编写C++程序,其文件扩展名为.cpp。这种形式的程序称为源代码(Source Code)。

·编译(Compile):用编译器将源代码转换成主机使用的内部语言——二进制形式的机器语言,文件扩展名为.obj。这种形式的程序称为目标代码(Objective Code)。

·链接(Link):将若干目标代码和现有的二进制代码库经过链接器链接,产生可执行代码(Executable Code),文件扩展名为.exe。

说明 在不同的计算机平台(如Windows,UNIX,Linux等)上,C++源文件和目标文件代码的后缀名可能会有所不同,不过都要遵循编辑、编译和链接3个步骤以生成可执行文件,本书以Windows操作系统为示例平台。 z/jS6inPUYSEU2KoGnJvN4ZGi213FXFpZGNDJk51nfheYfGDaBRKBh1rKuw9Yh7J

点击中间区域
呼出菜单
上一章
目录
下一章
×