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