在前面小节中已经提到,C++只是一个ISO标准,标准中规定了C++的基本语法以及这些语法对应的语义(可以简单理解为语法的含义)。要将C++真正地应用在实际的程序设计中,只有一个标准是不够的。
好在已经有很多商业公司、开源组织、基金会甚至是个人,遵照C++标准在不同的平台上进行了实现。这里的遵照并不是***地遵照C++标准,主要原因有以下几点:
(1)历史原因。某些编译器在实现的时候,C++正式标准还没有出来,或者是按照较老的标准实现的(C++标准也是在更新的)。
(2)平台原因。某些平台上实现标准中的某些特性比较困难,或者根本不需要这些特性。
(3)出于商业目的。某些商业公司实现的时候可能会添加一些其认为可行的或者更加好的特性。
(4)其他技术原因。
无论如何,现在可用的C++编译器实现已经很丰富了,在Windows平台上的实现就有若干种,比较常用的有Visual C++ 6.0附带的C++编译器实现,和Borland C++ Builder附带的C++编译器实现。就对标准的执行程度来看,后者要好一些。#t#
提示:Visual C++和Borland C++ Builder是Windows操作系统上常见的C++开发工具。前者是微软公司出品的,应用广泛。本书的主要内容就是讲述如何使用Visual C++ 6.0进行常见的Windows程序设计。Visual C++ 6.0除了包含了一个C++编译器之外,还包含了其他的一些可视化开发工具、辅助工具,以及一些C++库等,这些都将在本书的相关章节进行介绍。
1.3.2 Visual C++ 6.0的开发过程
Visual C++ 6.0编译器负责将C++源代码编译成汇编文件,转换为中间文件(obj文件),然后使用连接器将相关的中间文件连接在一起,生成可执行的二进制文件。其过程如下:
(1)源程序经过预处理后交给编译器。
(2)如果代码无误,编译器将代码生成汇编程序,再生成若干个目标程序(obj文件)。
(3)链接器负责将目标程序进行连接,生成可执行的程序。
但是这并不意味着C++即将消亡(这样的言论很多)。不可否认的是C++在C#、Java的进攻下,丢失了一些领域,但是C++仍然在普遍使用,很重要的原因就是因为C++既保持了C语言级别的效率(某些情况下例外),又加入了面向对象的特性。