C++语言概述常常被作为计算机二级C++语言理论的考点,下面就是小编跟大家分享C++语言概述,欢迎大家阅读!
1.1C++语言的发展
C++起源于C语言。1980年贝尔实验室的BjarneStroustrup和他的同事们开始对C语言进行改进和扩充,把Simula67(一种早期的面向对象语言)中类的概念引入到C语言,并将改进后的C语言称为“带类的C”Cwithclass。1983年夏,“带类的C”被正式命名为“C++”,并于同年7月首次对外发表。
1.2C++语言的特点
1C++是一种面向对象的程序设计语言
1抽象数据类型。
2封装和信息隐藏。
3以继承和派生方式实现程序的重用。
4以运算符重载和虚函数来实现多态性。
5以模板来实现类型的参数化。
2C++是程序员和软件开发者在实践中创造的
C++往往从编写实际程序的角度出发,为程序员提供了各种实用、灵活、高效的语言特性。
3C++是C语言的超集
能够很好地兼容C语言正是C++取得成功的原因之一,这是因为:
1C++继承了C语言简明、高效、灵活等众多优点。
2以前使用C语言编写的大批软件可以不加任何修改,直接在C++开发环境下维护。
3C语言程序员只需要学习C++扩充的新特性,就可以很快地使用C++编写程序。
1.3面向对象程序设计
C++是一种面向对象的程序设计语言,它充分支持面向对象思想中的三个主要特征是:
1封装性
封装性是指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。如果需要存取数据,可以通过对象提供的算法来进行操作,而无需知道对象内部的数据是如何表示和存储的。这种思想被称为信息隐藏。
2继承性
继承性是指一种事物保留了另一种事物的全部特征,并且具有自身的独有特征。
C++语言采用继承来支持重用,程序可以在现有类型的基础上扩展功能来定义新类型。新类型是从现有类型中派生出来的,因此被称为派生类。
3多态性
多态性是指当多种事物继承自一种事物时,同一种操作在它们之间表现出不同的行为。
C++语言中使用函数重载、模板、虚函数等概念来支持多态性。
C++语言主要包括面向过程和面向对象两部分内容。学习C++语言时,应该先学习其面向过程部分,再学习面向对象部分。
1.4C++语言的基本符号
C++语言中的基本符号可以分为3类:
1字母。包括大写英文字母和小写英文字母共52个符号。
2数字
3特殊符号。包括:
+-*/=,_:;?〓″〓′~|!#%&[]{}^<>和“空格”共30个符号。
这三类符号共计92个,它们组成了C++语言的基本符号集合。
1.5C++语言的词汇
1关键字
关键字也称为保留字,它是由C++语言本身预先定义好的一类单词。
表1ANSIC标准规定的关键字
autobreakcasechar
constcontinuedefaultdo
doubleelseenumextern
floatforgotoif
intlongregisterreturn
shortsignedsizeofstatic
structswitchtypedefunion
unsignedvoidvolatilewhile
表2ANSIC++标准补充的关键字
boolcatchclassconst_cast
dynamic_castexplicitfalse
friendinlinemutablenamespace
newoperatorprivateprotected
publicreinterpret_casestatic_casttemplate
thisthrowtruetry
typeidtypenameusingvirtual
wchar_t2标识符
标识符是用户为程序中各种需要命名的“元素”所起的名字。标识符的组成要符合一定的规则:
1标识符是一个以字母或下划线开头的,由字母、数字、下划线组成的字符串。
2标识符不能与任意一个关键字同名。
3标识符中的字母区分大小写。
4标识符不宜过长。C++语言一般设定一个标识符的有效长度为32个字符。
3字面常量
常量是指在程序中固定不变的值。常量一般有两种表示形式,即符号常量和字面常量。C++语言中符号常量的名字就是一个标识符,而字面常量却是一类特殊的单词。字面常量分为整型、浮点型、字符型和字符串型四类。
4运算符
运算符是对程序中的数据进行操作的一类单词。C++语言中运算符的种类非常丰富,其中有:
1单字符组成的运算符。
2双字符组成的运算符。
3三个字符组成的运算符。
4关键字运算符。
5标点符号
标点符号是在程序中起分割内容和界定范围作用的一类单词。
表3C++语言的标点符号
标点符号描述
空格语句中各成分之间的分割符
;分号语句的结束符
′单引号字符常量的起止标记符
″双引号字符串常量的起止标记符
#井字号预处理命令的开始标记符
{左花括号复合语句的开始标记符
}右花括号复合语句的结束标记符
∥双斜杠行注释的开始标记符
/*斜杠和星号块注释的开始标记符
*/星号和斜杠块注释的结束标记符
1.6C++程序的基本框架
由于C++语言既支持结构化程序设计,又支持面向对象程序设计,所以它同时具有结构化程序设计和面向对象程序设计两种基本框架。
1结构化程序设计框架
在C++的结构化程序设计框架中,函数是程序的基本组成单元。程序的主体通常由若干函数定义构成。
函数是程序中完成一定功能的模块。各个函数之间通过参数、返回值和全局变量来进行数据通信。
当编写一个较大的程序时,可以把它按照功能逐级划分成许多相对独立的小模块。每个小模块的功能由一个函数实现,再通过适当的方法将这些函数组织在一起协同工作,就能够完成整个程序所规定的任务。这种方法体现出了结构化程序设计中“功能分解,逐步求精”的思想。
使用结构化程序设计方法编写出的C++程序包括一个主函数和若干用户定义函数。主函数由操作系统调用,它是整个程序的入口。在主函数中调用其他函数,其他函数之间也可以相互调用,并且同一个函数可以被一个或多个函数调用任意多次。在C++中一个函数被调用之前必须先被声明。函数声明和函数体放在一起组成函数定义;函数体是用花括号括起来的若干语句,它们完成了一个函数的具体功能。
一般地,一个C++程序的结构化程序设计框架可以表示为:
<函数1的声明>
<函数2的声明>
…
<函数n的声明>
<主函数main>
<函数1的定义>
<函数2的定义>
…
<函数n的定义>
2面向对象程序设计框架
在C++的面向对象程序设计框架中,类成为程序的基本组成单元。程序的主体通常由若干类的定义构成。
类可以把数据和函数封装在一起,用以描述事物的属性和对事物的操作。类与类之间一方面通过封装而具有明确的独立性;另一方面又通过成员、友元、参数、继承和派生等关系,达到相互通信和联络的目的,从而形成一个有机的整体。
在结构化程序设计中,除了主函数之外,所有函数之间一律“平等”,没有层次关系可言,当程序规模稍大时,就会使整体结构变得相当混乱。相反,在面向对象程序设计中,类与类之间能够按照逻辑关系组成有条理的层次结构,从而使一个复杂程序变得有“纲”可循。这正体现出面向对象思想的优越性。
一般地,一个C++程序的面向对象程序设计框架可以表示为:
<类1的定义>
<类2的定义>
…
<类n的定义>
<主函数main>
<类1的成员函数定义>
<类2的成员函数定义>
…
<类n的成员函数定义>
1.7C++程序的开发过程
开发一个C++程序的过程通常包括编辑、编译、链接、运行和调试等步骤。
1编辑
在VC6集成开发环境中,用户可以使用编辑窗口来进行C++程序的编辑工作。VC6的编辑窗口是专门为编辑C++程序而设计的,它提供了包括语法亮色、调用提示、自动缩进、查找和替换等在内的一系列功能,使用起来十分方便。
当用户完成了C++程序的编辑时,应将输入的程序文本保存为以cpp为扩展名的文件保存C++头文时应以h为扩展名。
2编译
在VC6集成开发环境中,用户可以使用编译Compile命令将一个以cpp为扩展名的C++源程序文件转换成一个以obj为扩展名的目标文件。如果一个C++程序由多个源程序文件组成,应将它们分别进行编译形成多个目标文件。
3链接
在VC6集成开发环境中,用户可以使用生成Build命令来进行目标文件的链接工作。另外,在源程序文件没有被编译的情况下直接使用此命令,可以使编译和链接工作一起完成。
4运行和调试
在编译和链接工作成功地完成之后可以运行得到的可执行程序,观察程序是否符合我们所期望的运行结果。在VC6集成开发环境中,用户可以使用执行Execute命令来运行程序。
如果程序的运行结果不是我们所期望的,说明源程序文件中存在着语义错误。这时,需要使用调试器对可执行程序进行跟踪调试来查找错误发生的原因。在VC6集成开发环境中,用户可以很方便地进入调试状态,对程序进行设置断点、单步执行、观察变量等操作。