1.1 C++的发展历程和特点
学习一门语言,首先要对这门语言有一定的了解,要知道这门语言能做什么,并且怎样才能学好它。本节将对C++的历史背景进行简单的介绍,使读者对C++有一个基本的印象。
1.1.1 C++的发展历程
在介绍C++发展历程之前,先对程序语言进行大概的了解。
1.机器语言
机器语言是低级语言,也称为二进制代码语言。计算机使用的是由二进制数0和1组成的指令来表达计算机操作的语言的,如图1.1所示。
图1.1 机器语言
机器语言的特点:计算机可以直接识别,不需要进行任何翻译。
2.汇编语言
汇编语言是面向机器的程序设计语言。为了减轻使用机器语言编程的痛苦,采用英文字母或符号来替代机器语言的二进制编码,这样就把不易理解和使用的机器语言变成了汇编语言。使用汇编语言比使用机器语言使人们更加容易阅读和理解程序。人们可以利用汇编语言编写代码来控制硬件独立按键电路,如图1.2所示。
图1.2 汇编语言控制硬件独立按键电路
3.高级语言
汇编语言依赖于硬件体系,并且该语言中的助记符号数量比较多,所以运用起来仍然不够方便。为了使程序语言能够更贴近人类的自然语言,同时又不依赖于计算机硬件,于是产生了高级语言。高级语言的语法形式类似于英文,并且因为其远离对硬件的直接操作,所以容易被人们理解与使用。其中影响较大、使用普遍的高级语言有Fortran、Algol、Basic、Lisp、Pascal、Prolog、C、C++、VC、VB、Delphi、Java等。图1.3所示分别为C、C++和Java的程序。
图1.3 C、C++和Java的程序
本书所讲述的C++是从C语言发展过来的。C++最初的名字是C with Class,1983年12月由Rick Mascitti建议改名为CPlusPlus,即C++。Stroustrup经过钻研在C语言中加入了类的概念,最开始提出的类概念语言是Simula,虽然类具有很好的灵活性,但是无法胜任大型的程序。此后在Simula语言基础上发展的Smalltalk语言才是真正的面向对象语言,但是Smalltalk-80不支持多继承。
C++从Simula继承了类的概念,从Algol68继承了运算符重载、引用,以及在任何地方声明变量的能力,从BCPL获得了注释,从Ada获得到了模板、名字空间,从Ada、Clu和ML获得了异常。
1.1.2 C++的特点
C++是在C语言基础上发展起来的一种面向对象的编程语言,主要用来进行系统程序设计,它具有如下特点。
1.面向对象
C++是一种面向对象的程序设计语言,它采用抽象和实际相结合的特点,各对象之间使用消息进行通信,并且对象通过继承方法增加了代码的复用。
2.高效性
C++继承了C语言的特性,可以直接访问地址,进行位运算,从而能够对硬件进行操作。C++具有编写简单方便、便于理解的优点,还具有低级语言与硬件结合紧密的优点。
3.移植性好
C++具有很强的移植性,使用C++编写的程序基本不用太多修改就可以运行在不同型号的计算机中,C++标准可以在多种操作系统中使用。
4.运算符丰富
C++的运算符十分丰富,共有30多种类型,如算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、指针运算符、条件运算符、逗号运算符等。
5.数据结构多样
C++的数据结构多样,有整型、实型、字符型、枚举型等基本类型,也有数组、结构体、共用体等构造类型及指针类型,还为用户提供了自定义数据类型,能够实现复杂的数据结构,还可以定义类实现面向对象编程,类和指针结合可以实现高效的程序运算。