面向对象程序设计语言.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《面向对象程序设计语言.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计语言.ppt(101页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、面向对象程序设计语言面向对象程序设计语言C+C+电子科技大学示范性软件学院电子科技大学示范性软件学院1第二章 C+语法 C+程序概貌第一个C+程序()#include /包含ANSI C+头文件using namespace std;/使用预定义的名字空间stdvoid main(void)cout “Hello,world!”endl;/在屏幕上输出字符串2第二章 C+语法 C+程序概貌 ISO/ANSI C+头文件头文件程序的第一行是#include。#include是一条编译预处理指令,它的作用是在源文件中插入iostream文件所包含的所有源代码。我们将iostream文件称为头文件。
2、与C的头文件不同,ISO/ANSI C+头文件没有.h后缀。3第二章 C+语法 C+程序概貌 名字空间名字空间包含头文件iostream的目的是为了使用标准输出流cout。但如果仅仅是在原代码中包含了iostream,程序还是不能正确地通过编译,因为编译器不认识cout和endl这两个标识符。所以,我们通过using namespace std语句来引入名为std的名字空间。4第二章 C+语法 C+程序概貌 名字空间名字空间可以自定义名字空间,语法如下:namespace std/std是一个名字空间的名字/这里声明了常量、变量、数据类型等等5第二章 C+语法 C+程序概貌 名字空间名字空间一
3、旦一个标识符,例如ken,被定义在一个名字空间里,那么它就被隐藏在了那个名字空间里,也就是说,ken只能被包含在那个名字空间里的语句直接访问。试图在名字空间之外访问ken会得到一个编译器找不到标识符的错误。6第二章 C+语法 C+程序概貌 名字空间名字空间解决问题的方案有两个:1.使用名字限定符std:cout “Hello,world!”和“”实现,需要包含库文件iostream。()10第二章 C+语法 C+程序概貌 注释注释C+具有C的多行风格注解。使用“/*”开始,直到“*/”结束,可以注解多行,但不允许嵌套。C+也 提 供 一 种 新 的 表 示 注 解 的 方 法,Comment_
4、to_end_of_line的结构,使用“/”开始,直到行尾结束。为程序加入适当的注释是非常有价值的,因为这些注释可以为我们阅读程序提供帮助。实际上,适当的注释是高质量源代码的一部分注解。11第二章 C+语法 C+的内建(Built-in)类型 整数类型整数类型1.整型C+整数类型包括字符型char、短整型short、整型int和长整型long。它们之所以被称为整数类型是因为它们的值都是数学意义上的整数,没有小数部分。下面的这些数都属于整数类型:-128,-30,0,64,65535,47109523812第二章 C+语法 C+的内建(Built-in)类型 整数类型整数类型1.整型我们可以用
5、到的整数类型有8种:char,short,int,long,unsigned char,unsigned short,unsigned int,unsigned long其中,unsigned int可以简写为unsigned。13第二章 C+语法 C+的内建(Built-in)类型 整数类型整数类型2.字符型字符型char是一种特别的整数类型,因为在大多数情况下,我们不用它来表示整数,而是使用它的本意:表示字符。下面的例子都是字符:Az5+字符型数据在内存中是以ASCII码的形式存储的。由于字符的存储值ASCII码是个整数,因此在某些情况下我们会把字符数据当作整型数据来参与运算,或者表示比s
6、hort更短的整数。14第二章 C+语法 C+的内建(Built-in)类型 整数类型整数类型2.字符型C+采用了转意字符序列。比如,n并不代表字符n,而是表示新行(new line)。这里符号(反斜杆)叫做转意字符,意思是跟在它后面的字符不再是原来的含义,而是具有其它的含义。如果当要用到符号本身,我们需要把它写成。15第二章 C+语法 C+的内建(Built-in)类型 整数类型整数类型3.布尔型布尔型bool是一种特殊的内建整数类型,因为它采用与整数相同的存储方式。不过,布尔类型的表达范围非常有限,只能取false和true两个值。这是两个C+的关键字,而且是两个字面常量标识符,并不是字符
7、串。16第二章 C+语法 C+的内建(Built-in)类型 整数类型整数类型3.布尔型应该注意的是,虽然这里把bool类型归为整数类型,但这并不等于我们可以把它当作整数使用。bool类型主要用来表达一种逻辑真或假的状态,在这一点上,它的含义和用途与整数是完全不同的。17第二章 C+语法 C+的内建(Built-in)类型 浮点类型浮点类型浮点数指的是带有小数部分的数,用来表示数学意义上的实数。实数的表示是:整数部分+小数点+小数部分其中小数部分看起来也是个整数。除了小数点,整数部分和小数部分可以缺省,但不能两者都缺。下面是一些浮点数的例子:,6.,.218第二章 C+语法 C+的内建(Bui
8、lt-in)类型 浮点类型浮点类型C+的浮点类型有三种:float、double、long double。由于所有的计算机都是用二进制的方式来存储数据的,因此这影响了浮点数的表示精度,浮点数的存储值和实际值是有很微小的差别的。在大多数情况,这个差别不会对应用造成影响,但是在某些情况下我们不能忽略累积的误差。19第二章 C+语法 变量和命名常量 标识符标识符为了使C+程序更加易读易写,我们会用一些有意义的名字来标识程序元素,比如数据、函数等等。那些用来标识程序元素的名字就是标识符。使用自定义标识符也是所有高级语言的特征。标识符是由字母A-Z,a-z和数字0-9混合而成的,另外可以加入下划线_。不
9、过,所有的标识符必须以字母或者是下划线_开头。20第二章 C+语法 变量和命名常量 标识符标识符我们在命名一个标识符的时候,最好遵循一些常用的约定:1.取一个有意义的名字。2.如果名字由多个单词组成,那么每个单词的第一个字母用大写。注意,C+是大小写敏感的语言。3.使用匈牙利记号。匈牙利记号是一种前缀,其做法是在标识符的前面加上一个小写字母以示其数据类型。21第二章 C+语法 变量和命名常量 变量声明变量声明下面是变量声明的例子:charcData;boolbFlag;intiPage,nCount;doublefDelta;22第二章 C+语法 变量和命名常量 变量声明变量声明一旦声明了一个
10、变量,这个变量在运行时就会在内存中占据一定大小的空间。例如声明变量iPage在内存中的映像如下图所示:23iPage0 x0013FF78内存单元的符号名内存单元的32位地址内存单元的大小在32位机上是4字节第二章 C+语法 变量和命名常量 常量(常量(Named Constant)和)和const关键字关键字1.字面常量下面是一些字面常量和所属类型的例子:10(int)077L(long)0 xABCDu(unsigned int)9.78f(float)7905.30(double)A(char)xE7(char)“Hello”(string)24第二章 C+语法 变量和命名常量 常量(常
11、量(Named Constant)和)和const关键字关键字2.命名常量使用字面常量省掉了占用内存单元的开销,但也有一些缺点:当我们在多处使用了相同的字面常量,而后来又要对这个常量进行修改时就会显得非常麻烦;字面常量没有明确的类型信息,它们的类型采用编译器的约定。25第二章 C+语法 变量和命名常量 常量(常量(Named Constant)和)和const关键字关键字2.命名常量为了解决上述的问题,可以使用C风格的没有参数的宏定义:这里的PI并不是真正的符号常量,它仅仅是一个字符串,没有类型,不占用存储空间,不能取它的地址,只是在预处理时,凡是出现PI的地方都将会被替换为。26第二章 C+
12、语法 变量和命名常量 常量(常量(Named Constant)和)和const关键字关键字2.命名常量C+提供一个更灵活的命名常量(Named Constant)方式来描述常数:const float PI=3.14;const关键字的作用就是“冻结”一个单元。这样,PI成为一个真正的符号常量,有类型,需要占用存储空间(存放在常量数据区),但它的值不能被修改。27第二章 C+语法 变量和命名常量 易变变量和易变变量和volatile关键字关键字1.我们在程序中使用变量,但在某些特定的应用当中的一些变量,它们太容易被改变了。这很容易造成程序在某一时刻用到的该变量的值并不是它此刻真正的值。2.C
13、+引入了“易变变量(Volatile Variable)”的概念。C+使用volatile关键字来约束一个变量,以警告编译器这是一个易变变量:3.volatile int nSharedData;28第二章 C+语法 用户自定义类型29C+的数据类型地址类型简单类型结构类型整数类型布尔型 bool字符型 unsigned char短整型 unsigned short整型 unsigned int长整型 unsigned long浮点类型单精度浮点型 float双精度浮点型 double长双精度浮点型long double枚举类型 enum指针类型 pointer引用类型 reference数组
14、 array结构 struct联合 union类 class第二章 C+语法 用户自定义类型1.2.4.1 枚举枚举用宏来定义一系列表示状态的常量有明显的缺陷,就是没有类型信息。C+提供了一种更好的解决方案,就是使用枚举类型:enum TrafficLight RED,GREEN,AMBER;标识符RED、GREEN、AMBER被称为枚举常量,它们不是字符串,也不是整型常量。另外,枚举常量是有序的,也就是说,有大小的,上面例子中的顺序是这样的:RED GREEN nID=20070101;49第二章 C+语法 用户自定义类型2.4.4 指针指针3.指针和常量修饰符constconst也可以与指
15、针一起使用,它们的组合情况复杂一些,可归结为三种:指向常量的指针、常指针和指向常量的常指针。const char*pc;/指向常量的指针,pc指向的单元不能改变,但pc可以改变char*const cp;/常指针,cp不能改变,但它指向的单元可以改变const char*const cpc;/指向常量的常指针,两者都不能变50第二章 C+语法 用户自定义类型2.4.5 引用引用简单地说,引用就是给一个变量取一个别名。也就是说,引用与它所引用的变量实际上是同一个单元。这样,一个变量就拥有两个名字。int iPage;int&riPage=iPage;/iPage、riPage都是同一个单元的名字
16、51iPage(riPage)0 x00208730变量及其引用变量及其引用第二章 C+语法 用户自定义类型2.4.5 引用引用下面两条语句是等价的,它们的作用都是给iPage变量赋值为9。iPage=9;riPage=9;52第二章 C+语法 用户自定义类型2.4.5 引用引用一旦引用变量被绑定在一个普通变量上,那么这种绑定关系就是永久的。int iPage2=99;riPage=iPage2;上面第二条语句不是试图改变riPage的绑定关系,而是给它赋值,也就是直接给iPage赋值。(ex2-3.cpp)由于一个引用变量必须引用指向某一变量,因此独立引用必须在它被说明时加以初始化。53第二
17、章 C+语法 用户自定义类型2.4.6 用用typedef定义类型的别名定义类型的别名对于一些复杂的类型,在它们的定义中有较多的限定符或修饰符,这可能会让读者感到迷惑。为了简化的目的,我们可以用C+的typedef语句为那些类型提供一个简单的别名。例如:typedef intINT;typedef double(*DBLARRPTR)10;/定义一个指针类型,该类型的指针指向一个长度为10的double型数组 54第二章 C+语法2.5 C+运算符2.5.1 常用运算符常用运算符算数运算符:+-*/%+-关系运算符:=!=(not_eq)逻辑运算符:!&|not and or位运算符:(com
18、pl)&(bitand)|(bitor)(xor)移位运算符:赋值运算符:=+=-=*=/=%=|=(or_eq)&=(and_eq)=(xor_eq)条件运算符:?:55第二章 C+语法2.5 C+运算符2.5.1 常用运算符常用运算符求字节运算符:sizeof指针运算符:*&成员选择运算符:.-.*-*下标运算符:函数运算符:()域选择运算符::逗号运算符:,其它运算符 56第二章 C+语法2.5 C+运算符2.5.2 动态内存分配和释放运算符:动态内存分配和释放运算符:new和和deleteC+提供了新的运算符new和delete来完成动态存储分配和释放存储空间的工作:new的参数是待分
19、配单元的数目,它自动计算要分配类型的大小,而不给出要分配的存储区的大小(字节数);new自动返回正确的指针类型,不必对返回指针进行类型转换;可以用new将分配的存储空间进行初始化;delete会将释放后的指针置为NULL。57第二章 C+语法2.5 C+运算符2.5.2 动态内存分配和释放运算符:动态内存分配和释放运算符:new和和deletedouble*p;p=new double;delete p;p=new double10;delete p;(ex2-8.10.cpp)580 x00481BF00 x00481BF00 x0013FF44用用new运算符分配内存运算符分配内存p堆堆(
20、Heap)进程占据的内存进程占据的内存第二章 C+语法2.5 C+运算符2.5.3 类型转换运算符类型转换运算符1.隐式转换隐式转换发生在下述的情况下:混合运算:级别低的类型向级别高的类型转换。(注:某个类型的一个数据占用的存储空间越多,则该类型的级别越高)。将表达式的值赋给变量:表达式的值向变量类型的值转换。函数实参向函数形参传值:实参的值向形参的值进行转换。函数返回结果:返回的值向函数返回类型的值进行转换。59第二章 C+语法2.5 C+运算符2.5.3 类型转换运算符类型转换运算符2.显式类型转换显式类型转换有几种风格:C风格:(int)aC+风格:int(a)60第二章 C+语法2.5
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计语言
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内