简说C++学习-第一章C++语言概述
1.C++语言的发展
1972年,贝尔实验室在B语言的基础上,做了进一步的充实和完善,设计出了C语言。
C语言的优点:
- 语言简洁,使用灵活、方便。
- 具有丰富的运算符和数据类型。
- 可以进行低级操作,适合开发系统软件。
- 程序的运行效率高。
- 代码可移植性好。
C语言的缺点:
- 类型检查机制较弱。
- 缺少支持代码复用的语言结构。
- 不适合大型软件开发。
1980年,贝尔实验室在C语言的基础上,引入面向对象的特征,开发出一种过程性与对象性相结合的程序设计语言。最初称为"带类的C",1983年取名为C++。
2.C++语言的特点
C++语言的特点
-
C++是一种面向对象的程序设计语言
-
面向对象是不同于面向过程的一种编程思想,其特点主要体现在:
-
封装和信息隐藏。——封装性
-
以继承和派生方式实现程序的重用。——派生性
-
以函数重载和虚函数来实现多态性。——多态性
-
以模板来实现类型的参数化。
- 一般的高级程序设计语言是由计算机科学家在科研和教学环境中设计出来的。但是C++语言却是由 从事实际系统开发工作的程序员在实践中创造的。因此C++语言往往从编写实际程序的角度出发,为程序员提供了各种实用、灵活、高效的语言特性。
-
-
C++语言是C语言的超集
-
C++语言包含了C语言的全部语法特性。由于C++语言很好地兼容了C语言,因此,C++语言具有明显的优势,具体如下:
- C++语言继承了C语言简明、高效、灵活等众多优点。
- 以前使用C语言编写的大批软件可以不加任何修改,可以直接在C++语言开发环境下维护。
- C语言程序员只需要学习C++语言扩充的新特性,就可以很快地使用C++语言编写程序。
-
3. 面向对象程序设计
C++语言是一种面向对象的程序设计语言,支持面向对象思想中的3个主要特征:封装性、继承性、多态性。
-
封装性:封装性指将数据和算法捆绑成一个整体,这个整体就是对象,描述对象的数据被封装在其内部。
e.g1.使用者不必知道一部手机内部电路的具体构造和工作原理,就可以用它来打电话,发短信。
-
继承性:继承性指一种事物保留了另一种事物的全部特征,并在无需重新编写原来的类的情况下对这些功能进行扩展。
e.g2. 麻雀具有鸟类动物的所有特征,这种生理特性,称为继承。
-
多态性:多态性是指当多种实物继承自一种事物时,同一种操作在他们之间表现出不同的行为。
e.g3. "麻雀"继承了"鸟类"动物的所有特征,"画眉鸟"同样也继承了"鸟类"动物的特征。但是"麻雀"和"画眉鸟"却有完全不同的行为,这就是我们现实中出现的多态性。
- 它使用函数重载、模板、虚函数来支持多态性。
4.C++语言的词汇
C+语言只有5中合法词汇:关键字、标识符、字面常量、运算符、标点符号。
-
关键字
- 关键字也称为保留字,C++语言中关键字一共有61个,包括ANSI C标准规定的32个关键字,ANSI C++标准补充的另外29个关键字,每个关键词在C++语言中都有特殊的含义和一定的功能,不能作为其他词汇使用。
-
标识符
- 标识符是用户为程序中各种需要命名的"元素"所起的名字。这些"元素"包括类、对象、结构、变量、符号常量、函数、函数的参数等。标识符的组成要符合如下的规则:
- 标识符是一个以字母或下画线开头的,由字母、数字、下画线组成的字符串。
e.g1. count、_PI、_342JIJIN都是合法的标识符。
- 标识符不能与任意一个关键字同名
e.g2. 2.sizeof、new等。
- 标识符中的字母区分大小写。
e.g3. PI与pi是不同的标识符。
- 标识符的有效长度为32个字符
如果程序中的标识符超过这个长度,超出的部分被忽略不计。
- 标识符是一个以字母或下画线开头的,由字母、数字、下画线组成的字符串。
- 标识符是用户为程序中各种需要命名的"元素"所起的名字。这些"元素"包括类、对象、结构、变量、符号常量、函数、函数的参数等。标识符的组成要符合如下的规则:
-
字面称量
- 常量是指在程序中固定不变的值。常量一般有两种表示形式,即字符常量和字面常量。字面常量分为整型、浮点型、字符型和字符串型4类。
e.g4. 整型123、浮点型123.456、字符型'a'、字符串"hello"。
- 常量是指在程序中固定不变的值。常量一般有两种表示形式,即字符常量和字面常量。字面常量分为整型、浮点型、字符型和字符串型4类。
-
运算符
- 运算符是对程序中的数据进行操作的一类单词。C++语言中运算符有以下4种。
- 单字符组成的运算符
e.g5. +,-,*,/等。
- 双字符组成的运算符
e.g6. <<,<=,&&等。
- 3个字符组成的运算符
e.g7. <<=,>>=等。
- 关键字运算符
e.g8. new,delete,sizeof等。
- 单字符组成的运算符
- 运算符是对程序中的数据进行操作的一类单词。C++语言中运算符有以下4种。
-
标点符号
- 标点符号是在程序中起分隔内容和界定范围作用的一类符号。C++语言的标点符号包括:
- (空格)语句中各成分之间的分隔符
- ;(分号)语句的结束符
- ’(单引号)字符常量的起止标记符
- "(双引号)字符串常量的起止标记符
- #(井字号)预处理命令的开始标记符 //#include; #define
- {(左花括号)复合语句的开始标记符
- }(有话括号)复合语句的结束标记符
- //(双斜杠)行注释的开始标记符
- /*(斜杠和型号)块注释的开始标记符
- */(星号和斜杠)块注释的结束标记符
- 标点符号是在程序中起分隔内容和界定范围作用的一类符号。C++语言的标点符号包括:
-
C++的开发过程
- 编辑
- 编辑是C++程序开发过程的第一步,主要包括文本的输入和修改。Visual C++2010是最常用的C++集成开发环境。当完成了C++程序的编辑后,应将输入的程序文本保存为以.cpp为扩展名的文件,头文件应以.h为扩展名。
- 编译
- 编译时由源程序文件转换到目标文件的过程。在Visual C++2010集成开发环境中,可以使用编译命令将一个.cpp文件转换成一个.obj的目标文件。
- 链接
- 链接是将目标代码(.obj文件)变成可执行程序(.exe文件)的过程。在Visual C++2010集成开发环境中,可以使用生成命令进行链接。
- 运行和调试
- 运行可执行程序,查看运行结果。在Visual C++2010集成开发环境中,用户可以很方便地进入调试状态,对程序进行设置断点、单步执行、观察变量等操作。
- 编辑
练习题
1.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()。
A. 增加了一些新的运算符
B.允许函数重载,并允许设置默认参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
D【解析】C++语言最重要的特点是其为一种面向对象的程序设计语言,但是C++语言也包含了C语言的全部特征。
2.与C语言相比,C++语言在求解问题方法上进行的最大改进是()。
A. 逐步求精
B. 面向过程
C.面向对象
D.代码复用
C【解析】C语言是面向过程的,C++是面向对象的,C++兼容C,公认最大改进是C++面向对象的特性。C语言面向过程的,代码复用是一种技术,C和C++都可。因此A,B,D,不是C++的专有特点。故答案为C选项。
3.下列选项中,能体现面向对象思想主要特征的是()。
A. 递归
B. 函数
C.循环
D.封装
D【解析】面向对象思想主要特征有:封装、继承、多态,选项D正确。本题答案为D。
4.下列选项中,不属于C++关键字的是()。
A. byte
B. namespace
C.enum
D.union
A【解析】选项B是命名空间的关键字,正确;选项C是枚举类型的说明符,是关键字,正确;选项D是联合体类型的说明符,是关键字,正确;选项A表示字节,是存储空间大小的表示单位,不属于关键字,错误,本题答案为A。
5.下列选择中,不属于C++关键字的是()。
A. namespace
B. public
C. struct
D. abstract
D【解析】namespace是定义命名空间的关键字,选项A正确;public关键字在类定义体中指定公共成员,在类继承体系中指定公有继承,选项B正确;struct关键字定义结构体类型,选项C正确;abstract不属于C++关键字,选项D错误。故本题答案为D选项。
6.用于定义类的必不可少的C++关键字是()。
A. auto
B. return
C.class
D.public
C【解析】本题定义类的基础知识,定义类时使用的关键字为class,所以C选项正确。
7.以下关键字用来声明类的访问权限的是()。
A. const
B. static
C.protected
D.case
C【解析】C++中,关键字public、protected、private用来声明类的访问权限,答案为C。
8.在下列关键字中,不能用来表示继承方式的是()。
A. private
B. static
C.public
D.protected
B【解析】三种继承方式:公用继承、私有继承和保护继承分别使用public 、private和protected 三个关键字来定义。故本题答案为B选项。
9.下列语句中错误的是()。
A. const int *p = 0;
B. const int y = 99;
C.const int x;
D.const int *p = new int (100);
C【解析】const是一个C++语言的关键字,它限定一个变量不允许被改变,C++定义const类型变量时必须初始化,否则编译不通过。所以C选项错误。
10.下列字符中,可以出现在合法的C++标识符中的是()。
A. :
B. ~
C.&
D.1
D【解析】C++的标识符由字母、数字和下划线组成,A、B、C错误,答案为D。
11.下列符号中,正确的C++标识符是()。
A. enum
B. 2b
C.foo-9
D._32
D【解析】本题考查C++标识符的命名规则,规定如下:①所有标识符可以由字母、数字和下画线组成,且必须以字母或下画线开头;②C++的关键字不能作为标识符;③大、小写字母表示不同意义,即代表不同的标识符,如mun和Mun。A选项是C++的关键字,B选项不能以数字开头,C选项“-”不能用于组成标识符。故本题答案为D选项。
12.Windows环境下,由C++源程序文件编译而成的目标文件的拓展名是()。
A. o
B. obj
C.exe
D.h
B【解析】A选项中,o是linux环境下编译后的目标文件的扩展名;C选项中,exe是windows环境下程序链接之后的可执行文件的扩展名;D选项中,h是源程序头文件;答案为B。
13.下列选项中,不属于C++程序开发步骤的是()。
A. 编辑
B. 编译
C.链接
D.解释
D【解析】C++程序开发步骤分为:编辑、编译、链接、运行,本题答案为D。
-----------------------------------------------------------第一次发文希望大家多多支持---------------------------------------------------------