面向对象程序设计语言C++演示教学

上传人:youn****329 文档编号:143321378 上传时间:2020-08-28 格式:PPT 页数:101 大小:625KB
返回 下载 相关 举报
面向对象程序设计语言C++演示教学_第1页
第1页 / 共101页
面向对象程序设计语言C++演示教学_第2页
第2页 / 共101页
面向对象程序设计语言C++演示教学_第3页
第3页 / 共101页
面向对象程序设计语言C++演示教学_第4页
第4页 / 共101页
面向对象程序设计语言C++演示教学_第5页
第5页 / 共101页
点击查看更多>>
资源描述

《面向对象程序设计语言C++演示教学》由会员分享,可在线阅读,更多相关《面向对象程序设计语言C++演示教学(101页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计语言C+,电子科技大学示范性软件学院,1,第二章 C+语法,2.1 C+程序概貌 第一个C+程序(ex2-1.cpp) #include /包含ANSI C+头文件 using namespace std; /使用预定义的名字空间std void main(void) cout “Hello, world!” endl; /在屏幕上输出字符串 ,2,第二章 C+语法,2.1 C+程序概貌 2.1.1 ISO/ANSI C+头文件 程序的第一行是#include 。#include是一条编译预处理指令,它的作用是在源文件中插入iostream文件所包含的所有源代码。我们将iost

2、ream文件称为头文件。 与C的头文件不同,ISO/ANSI C+头文件没有.h后缀。,3,第二章 C+语法,2.1 C+程序概貌 2.1.2 名字空间 可以自定义名字空间,语法如下: namespace std /std是一个名字空间的名字 /这里声明了常量、变量、数据类型等等 ,5,第二章 C+语法,2.1 C+程序概貌 2.1.2 名字空间 一旦一个标识符,例如ken,被定义在一个名字空间里,那么它就被隐藏在了那个名字空间里,也就是说,ken只能被包含在那个名字空间里的语句直接访问。试图在名字空间之外访问ken会得到一个编译器找不到标识符的错误。,6,第二章 C+语法,2.1 C+程序概

3、貌 2.1.2 名字空间 解决问题的方案有两个: 使用名字限定符 std:cout “Hello, world!” std:endl; 使用using指令 using namespace std; 一旦引入某个名字空间,那么就不需要在属于这个名字空间的标识符前加上名字空间限定了。,7,第二章 C+语法,2.1 C+程序概貌 2.1.3 main函数 每一个C+程序都必须并且只能有一个main函数。其实这是C+从C那里继承来的一个“不好”的遗产:它是一个游离的不属于任何语法结构的函数,具有非常明显的非面向对象的特征。 main函数与其它的用户自定义函数一样,可以带有参数,并且也可以有返回值。例如

4、: int main(int argc, char *argv) main函数的参数由命令行参数给出。,8,第二章 C+语法,2.1 C+程序概貌 2.1.4 输入和输出 在C程序里,我们常会用到标准库函数printf和scanf来完成输入和输出。这两个函数有个缺点,就是只能处理编译器内建的标准类型,而不能处理用户自定义的类型。为了解决这个问题,C+引入了流(stream)的概念。,9,第二章 C+语法,2.1 C+程序概貌 2.1.4 输入和输出 C+的输入和输出可以: 使用C的外部库函数(如printf、scanf等,它们包含在头文件stdio.h或cstdio中); C+还提供了自己的输

5、入输出方式;通过使用运算符“”和“”实现,需要包含库文件iostream。(ex2-2.cpp),10,第二章 C+语法,2.1 C+程序概貌 2.1.5 注释 C+具有C的多行风格注解。使用“/*”开始,直到“*/”结束,可以注解多行,但不允许嵌套。 C+也提供一种新的表示注解的方法,Comment_to_end_of_line的结构,使用“/”开始,直到行尾结束。 为程序加入适当的注释是非常有价值的,因为这些注释可以为我们阅读程序提供帮助。实际上,适当的注释是高质量源代码的一部分注解。,11,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 1. 整型 C

6、+整数类型包括字符型char、短整型short、整型int和长整型long。它们之所以被称为整数类型是因为它们的值都是数学意义上的整数,没有小数部分。 下面的这些数都属于整数类型: -128,-30,0,64,65535,471095238,12,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 整型 我们可以用到的整数类型有8种: char, short, int, long, unsigned char, unsigned short, unsigned int, unsigned long 其中,unsigned int可以简写为unsigned。,13

7、,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 2. 字符型 字符型char是一种特别的整数类型,因为在大多数情况下,我们不用它来表示整数,而是使用它的本意:表示字符。下面的例子都是字符: Az5+ 字符型数据在内存中是以ASCII码的形式存储的。由于字符的存储值ASCII码是个整数,因此在某些情况下我们会把字符数据当作整型数据来参与运算,或者表示比short更短的整数。,14,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 2. 字符型 C+采用了转意字符序列。比如,n并不代表字符n,而是表示新行(new line)。

8、这里符号(反斜杆)叫做转意字符,意思是跟在它后面的字符不再是原来的含义,而是具有其它的含义。如果当要用到符号本身,我们需要把它写成。,15,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 3. 布尔型 布尔型bool是一种特殊的内建整数类型,因为它采用与整数相同的存储方式。不过,布尔类型的表达范围非常有限,只能取false和true两个值。这是两个C+的关键字,而且是两个字面常量标识符,并不是字符串。,16,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 3. 布尔型 应该注意的是,虽然这里把bool类型归为整数类型,但这

9、并不等于我们可以把它当作整数使用。bool类型主要用来表达一种逻辑真或假的状态,在这一点上,它的含义和用途与整数是完全不同的。,17,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.2 浮点类型 浮点数指的是带有小数部分的数,用来表示数学意义上的实数。实数的表示是: 整数部分 + 小数点 + 小数部分 其中小数部分看起来也是个整数。除了小数点,整数部分和小数部分可以缺省,但不能两者都缺。下面是一些浮点数的例子: 3.14159,-123.45,0.957,6.,.2,18,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.2 浮点类型 C+的浮点类型有

10、三种:float、double、long double。 由于所有的计算机都是用二进制的方式来存储数据的,因此这影响了浮点数的表示精度,浮点数的存储值和实际值是有很微小的差别的。在大多数情况,这个差别不会对应用造成影响,但是在某些情况下我们不能忽略累积的误差。,19,第二章 C+语法,2.3 变量和命名常量 2.3.1 标识符 为了使C+程序更加易读易写,我们会用一些有意义的名字来标识程序元素,比如数据、函数等等。那些用来标识程序元素的名字就是标识符。使用自定义标识符也是所有高级语言的特征。 标识符是由字母A-Z,a-z和数字0-9混合而成的,另外可以加入下划线_。不过,所有的标识符必须以字母

11、或者是下划线_开头。,20,第二章 C+语法,2.3 变量和命名常量 2.3.1 标识符 我们在命名一个标识符的时候,最好遵循一些常用的约定: 取一个有意义的名字。 如果名字由多个单词组成,那么每个单词的第一个字母用大写。注意,C+是大小写敏感的语言。 使用匈牙利记号。匈牙利记号是一种前缀,其做法是在标识符的前面加上一个小写字母以示其数据类型。,21,第二章 C+语法,2.3 变量和命名常量 2.3.2 变量声明 下面是变量声明的例子: charcData; boolbFlag; intiPage, nCount; doublefDelta;,22,第二章 C+语法,2.3 变量和命名常量 2

12、.3.2 变量声明 一旦声明了一个变量,这个变量在运行时就会在内存中占据一定大小的空间。例如声明变量iPage在内存中的映像如下图所示:,23,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Constant)和const关键字 字面常量 下面是一些字面常量和所属类型的例子: 10(int) 077L(long) 0 xABCDu(unsigned int) 9.78f(float) 7905.30(double) A(char) xE7(char) “Hello”(string),24,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Const

13、ant)和const关键字 命名常量 使用字面常量省掉了占用内存单元的开销,但也有一些缺点: 当我们在多处使用了相同的字面常量,而后来又要对这个常量进行修改时就会显得非常麻烦; 字面常量没有明确的类型信息,它们的类型采用编译器的约定。,25,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Constant)和const关键字 命名常量 为了解决上述的问题,可以使用C风格的没有参数的宏定义: #define PI 3.14 这里的PI并不是真正的符号常量,它仅仅是一个字符串,没有类型,不占用存储空间,不能取它的地址,只是在预处理时,凡是出现PI的地方都将会被替换为3.14

14、。,26,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Constant)和const关键字 命名常量 C+提供一个更灵活的命名常量(Named Constant)方式来描述常数: const float PI = 3.14; const关键字的作用就是“冻结”一个单元。这样,PI成为一个真正的符号常量,有类型,需要占用存储空间(存放在常量数据区),但它的值不能被修改。,27,第二章 C+语法,2.3 变量和命名常量 2.3.4 易变变量和volatile关键字 我们在程序中使用变量,但在某些特定的应用当中的一些变量,它们太容易被改变了。这很容易造成程序在某一时刻用到

15、的该变量的值并不是它此刻真正的值。 C+引入了“易变变量(Volatile Variable)”的概念。C+使用volatile关键字来约束一个变量,以警告编译器这是一个易变变量: volatile int nSharedData;,28,第二章 C+语法,2.4 用户自定义类型,29,第二章 C+语法,2.4 用户自定义类型 2.4.1 枚举 用宏来定义一系列表示状态的常量有明显的缺陷,就是没有类型信息。C+提供了一种更好的解决方案,就是使用枚举类型: enum TrafficLight RED, GREEN, AMBER ; 标识符RED、GREEN、AMBER被称为枚举常量,它们不是字符

16、串,也不是整型常量。另外,枚举常量是有序的,也就是说,有大小的,上面例子中的顺序是这样的: RED GREEN AMBER,30,第二章 C+语法,2.4 用户自定义类型 2.4.2 数组 一维数组 一维数组的定义如下: int array100; 这条语句创建了一个名为array的一维数组,它的长度是100个单元(而不是100个字节),每个单元的类型是int。 array是整个数组的名字,数组的每个整型单元没有被直接命名,如果说有的话,那么它们的名字就是array0、array1、array99,分别引用的是array数组的第0个、第1个、第99个元素。,31,第二章 C+语法,2.4 用户自定义类型 2.4.2 数组 一维数组 array数组在内存中的分配情况如图所示:,32,第二章 C+语法,2.4 用户自定义类型 2.4.2 数组 二维数组 在处理像矩阵这样的二维阵列(这正是array

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号