面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇

上传人:tia****nde 文档编号:66989939 上传时间:2019-01-06 格式:PPT 页数:117 大小:1.25MB
返回 下载 相关 举报
面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇_第1页
第1页 / 共117页
面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇_第2页
第2页 / 共117页
面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇_第3页
第3页 / 共117页
面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇_第4页
第4页 / 共117页
面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇_第5页
第5页 / 共117页
点击查看更多>>
资源描述

《面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇》由会员分享,可在线阅读,更多相关《面向对象程序设计语言c+ 电子科技大学计算机学院 陈文宇(117页珍藏版)》请在金锄头文库上搜索。

1、面向对象程序设计语言C+,电子科技大学计算机学院 陈文宇,1,第二章 C+语法,2.1 C+程序概貌 第一个C+程序 #include /包含ANSI C+头文件 void main( ) cout “Hello, world!” endl; /输出字符串 ,2,#include /包含ANSI C+库文件 void main( ) std:cout “Hello, world!” std: endl; ,#include /包含ANSI C+库文件 using namespace std; /使用预定义的名字空间std void main( ) cout “Hello, world!” en

2、dl; ,第二章 C+语法,2.1 C+程序概貌 2.1.1 ISO/ANSI C+库文件 程序的第一行是#include 。#include是一条编译预处理指令,它的作用是在源文件中插入iostream文件所包含的所有源代码。 iostream文件是标准C+的一个库文件。,5,C语言的头文件都有后缀.h,C+语言可以直接使用这些带.h后缀的头文件。 为避免命名的冲突,ISO/ANSI C+标准将每一个C语言的头文件对应地改造为一个库文件(文件名仅仅是将原文件的.h去掉), 并将该文件中定义的标识符定义在标准的名字std中。,第二章 C+语法,2.1 C+程序概貌 2.1.2 名字空间 包含头

3、文件iostream的目的是为了使用标准输出流cout和endl 。 通过using namespace std语句来引入名为std的名字空间。,7,第二章 C+语法,2.1 C+程序概貌 2.1.2 名字空间 可以自定义名字空间,语法如下: namespace std /std是一个名字空间的名字 /这里声明了常量、变量、数据类型等等 ,8,第二章 C+语法,2.1 C+程序概貌 2.1.2 名字空间 一旦一个标识符,例如ken,被定义在一个名字空间里,那么它就被隐藏在了那个名字空间里。 也就是说,ken只能被包含在那个名字空间里的语句直接访问。 试图在名字空间之外访问ken会得到一个编译器

4、找不到标识符的错误。,9,第二章 C+语法,2.1 C+程序概貌 2.1.2 名字空间 解决问题的方案有两个: 使用名字限定符 std:cout “Hello, world!” std:endl; 使用using指令 using namespace std; 一旦引入某个名字空间,那么就不需要在属于这个名字空间的标识符前加上名字空间限定了。,10,第二章 C+语法,2.1 C+程序概貌 2.1.3 main函数 每个C+程序都必须并且只能有一个main函数。这是C+从C那里承袭来的。 main函数与其它的用户自定义函数一样,可以带有参数(由命令行参数给出),并且也可以有返回值。例如: int

5、main(int argc, char *argv ),11,第二章 C+语法,2.1 C+程序概貌 2.1.4 输入和输出 C+的输入和输出可以: 使用C的外部库函数(如printf、scanf等,它们包含在头文件stdio.h或cstdio中); C+还提供了自己的输入输出方式;通过使用运算符“”和“”实现,需要包含库文件iostream。(ex2-2.cpp),12,输入格式为: cin变量名; “”在C语言中是右移运算符,在C+语言中,如果第一个操作数为cin,它就是输入运算符。 输出格式为: 变量 cout 表达式 常量(各种类型常量均可) “”在C语言中是左移运算符,在C+语言中,

6、如果第一个操作数为cout,它就是输出运算符。 输入和输出运算符可以连用。,第二章 C+语法,2.1 C+程序概貌 2.1.5 注释 为程序加入适当的注释是非常有价值的,因为这些注释可以为我们阅读程序提供帮助。 C+具有C的多行风格注解。使用“/*”开始,直到“*/”结束,可以注解多行,但不允许嵌套。 C+也提供一种新的表示注解的方法,Comment_to_end_of_line的结构,使用“/”开始,直到行尾结束。,14,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 1. 整型 C+整数类型包括字符型char、短整型short、整型int和长整型long

7、。 下面的这些数的类型都属于整数类型: -128,-30,0,64,65535,680712,15,第二章 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。,16,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 2. 字符型 字符型char是一种特别的整数类型。 字符型数据在内

8、存中是以ASCII码的形式存储的。由于字符的存储值ASCII码是个整数,因此在某些情况下我们会把字符数据当作整型数据来参与运算。,17,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 2. 字符型 C+的转意字符序列。比如,n并不代表字符n,而是表示新行(new line)。这里符号(反斜杆)叫做转意字符,意思是跟在它后面的字符不再是原来的含义,而是具有其它的含义。 如果当要用到符号本身,需要把它写成。,18,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 3. 布尔型 布尔型bool是一种特殊的内建整数类型,因为它采用与

9、整数相同的存储方式。 不过,布尔类型的表达范围非常有限,只能取false和true两个值。这是两个C+的关键字,而且是两个字符常量标识符,并不是字符串。,19,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.1 整数类型 3. 布尔型 应该注意的是,虽然这里把bool类型归为整数类型,但这并不等于我们可以把它当作整数使用。 bool类型主要用来表达一种逻辑真或假的状态,它的含义和用途与整数是完全不同的。,20,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.2 浮点类型 浮点数指的是带有小数部分的数,用来表示数学意义上的实数。实数的表示是: 整数部分

10、 . 小数部分 其中小数部分看起来也是个整数。除了小数点,整数部分和小数部分可以缺省,但不能两者都缺。下面是一些浮点数的例子: 3.14159,-123.45,0.957,6.,.2,21,第二章 C+语法,2.2 C+的内建(Built-in)类型 2.2.2 浮点类型 C+的浮点类型有三种:float、double、long double。 由于所有的计算机都是用二进制的方式来存储数据的,因此这影响了浮点数的表示精度,浮点数的存储值和实际值是有很微小的差别的。 如何判断两个浮点型变量的值是否相等?,22,第二章 C+语法,2.3 变量和命名常量 2.3.1 标识符 为了使C+程序更加易读易

11、写,我们会用一些有意义的名字来标识程序元素,比如数据、函数等等。那些用来标识程序元素的名字就是标识符。使用自定义标识符也是所有高级语言的特征。 标识符是由字母A-Z,a-z和数字0-9混合而成的,另外可以加入下划线_。不过,所有的标识符必须以字母或者是下划线_开头。,23,第二章 C+语法,2.3 变量和命名常量 2.3.1 标识符 命名一个标识符的时候,遵循一些常用的约定: 取一个有意义的名字。 如果名字由多个单词组成,那么每个单词的第一个字母用大写。(C+是大小写敏感的语言) 使用匈牙利记号。匈牙利记号是一种前缀,其做法是在标识符的前面加上一个小写字母以示其数据类型。,24,第二章 C+语

12、法,2.3 变量和命名常量 2.3.2 变量声明 下面是变量声明的例子: char cData; bool bFlag; int iPage, nCount; double fDelta;,25,第二章 C+语法,2.3 变量和命名常量 2.3.2 变量声明 一旦声明了一个变量,这个变量在运行时就会在内存中占据一定大小的空间。例如声明变量iPage在内存中的映像如下图所示:,26,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Constant)和const关键字 常量 一些常量(字面常量)和所属类型的例子: 10 (int) 077L (long) 0xABCDu (

13、unsigned int) 9.78f (float) 7905.30 (double) A (char),27,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Constant)和const关键字 命名常量 使用字面常量省掉了占用内存单元的开销,但也有一些缺点: 在多处使用了相同的字面常量,而后来又要对这个常量进行修改时就会显得非常麻烦; 字面常量没有明确的类型信息,它们的类型采用编译器的约定。,28,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Constant)和const关键字 命名常量 为了解决上述的问题,可以使用C风格的没有参数的宏

14、定义: #define PI 3.14 PI并不是真正的符号常量。 仅是一个字符串,没有类型,不占用存储空间,不能取它的地址。,29,第二章 C+语法,2.3 变量和命名常量 2.3.3 常量(Named Constant)和const关键字 命名常量 C+提供灵活的命名常量方式来描述常数: const float PI = 3.14; PI成为一个真正的符号常量,有类型,需要占用存储空间(存放在常量数据区)。 PI的值不能被修改。,30,第二章 C+语法,2.3 变量和命名常量 2.3.4 易变变量和volatile关键字 在程序中使用某些变量,很容易被改变。这很容易造成程序在某一时刻用到的

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

16、,也不是整型常量。 另外,枚举常量是有序的。,33,第二章 C+语法,2.4 用户自定义类型 2.4.2 数组 一维数组 一维数组的定义如下: TYPE array整型常量;,34,第二章 C+语法,2.4 用户自定义类型 2.4.2 数组 二维数组 在处理像矩阵这样的二维阵列(这正是array这个词汇的原意)时,使用二维数组 const int ROW = 3; const int COL = 5; int arrROWCOL;,35,第二章 C+语法,2.4 用户自定义类型 2.4.2 数组 一维字符数组 一维字符数组往往被用来表示字符串。不过,数组最后一个有效字符的后面必须是个结束标记。 这样的字符串被称为ASCIZ字符串。 char szName = K

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

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

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