C++面向对象程序设计(引言).ppt
《C++面向对象程序设计(引言).ppt》由会员分享,可在线阅读,更多相关《C++面向对象程序设计(引言).ppt(541页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+面向对象程序设计面向对象程序设计1第一章第一章C+概述概述C+语言发展历史语言发展历史自从自从1946年第一台电子数字计算机年第一台电子数字计算机ENIAC问世以来,随着计算机应用领域的不断扩大,问世以来,随着计算机应用领域的不断扩大,促进了计算机技术的高速发展,尤其是近年促进了计算机技术的高速发展,尤其是近年来计算机的硬件和软件都是日新月异。作为来计算机的硬件和软件都是日新月异。作为应用计算机的一种工具应用计算机的一种工具程序设计语言,得程序设计语言,得到不断的充实和完善。每年都有新的程序设到不断的充实和完善。每年都有新的程序设计语言问世,老的程序设计语言不断地更新计语言问世,老的程序设
2、计语言不断地更新换代。换代。220世世纪纪60年年代代,MartinRichards为为计计算算机机软软件件人人员员在在开开发发系系统统软软件件时时,作作为为记记述述语语言言使使用用而而开开发发了了BCPL语语言言(BasicCombinedProgrammingLanguage)。1970年年,KenThompson在在继继承承BCPL语语言言的的许许多多优优点点的的基基础础上上发发明明了了实实用用的的B语语言言。到到了了1972年年,贝贝尔尔实实验验室室的的DennisRitchie和和Briankernighan在在B语语言言的的基基础础上上,作作了了进进一一步步的的充充实实和和完完善善
3、,设设计计出出了了C语语言言。当当时时,设设计计C语语言言是是为为了了编编写写UNIX操操作作系系统统的的。以以后后,C语语言言经经过过多多次次改改进进,并并开开始始流流行行。C+是是在在C语语言言的的基基础础上上发发展展和和完完善善的的,而而C是是吸收了其它语言的优点逐步成为实用性很强的语言吸收了其它语言的优点逐步成为实用性很强的语言。3C语言的主要特点是:语言的主要特点是:1、C语语言言是是一一种种结结构构化化的的程程序序设设计计语语言言,语语言言本本身身简简洁洁、使使用用灵灵活活方方便便。既既适适用用于于设设计计和和编编写写大大的的系系统统程程序序,又又适适用用于于编编写写小小的的控控制
4、制程程序序,也也适适用科学计算。用科学计算。2、它它既既有有高高级级语语言言的的特特点点,又又具具有有汇汇编编语语言言的的特特点点。运运算算符符丰丰富富,除除了了提提供供对对数数据据的的算算术术逻逻辑辑运运算算外外,还还提提供供了了二二进进制制的的位位运运算算。并并且且也也提提供供了了灵灵活活的的数数据据结结构构。用用C语语言言编编写写的的程程序序表表述述灵灵活活方方便便,功功能能强强大大。用用C语语言言开开发发的的程程序序,其其结结构构性性好好,目目标程序质量高,程序执行效率高。标程序质量高,程序执行效率高。43、程程序序的的可可移移植植性性好好。用用C语语言言在在某某一一种种型型号号的的计
5、计算算机机上上开开发发的的程程序序,基基本本上上可可以以不不作作修修改改,而而直直接接移植到其它型号和不同档次的计算机上运行。移植到其它型号和不同档次的计算机上运行。4、程程序序的的语语法法结结构构不不够够严严密密,程程序序设设计计的的自自由由度度大大。这这对对于于比比较较精精通通C语语言言的的程程序序设设计计者者来来说说,可可以以设设计计出出高高质质量量的的非非常常通通用用的的程程序序。但但对对于于初初学学者者来来说说,要要能能比比较较熟熟练练运运用用C语语言言来来编编写写程程序序,并并不不是是一一件件容容易易的的事事情情。与与其其它它高高级级语语言言相相比比而而言言,调调试试程程序序比比较
6、较困困难难。往往往往是是编编好好程程序序输输入入计计算算机机后后,编编译译时时容容易易通通过过,而而在在执执行行时时还还会会出出错错。但但只只要要对对C语语言言的的语语法法规规则则真真正正领领会会,编编写写程程序序及及调调试试程程序序还是比较容易掌握的。还是比较容易掌握的。5随随着着C语语言言应应用用的的推推广广,C语语言言存存在在的的一一些些缺缺陷陷或或不不足足也也开开始始流流露露出出来来,并并受受到到大大家家的的关关注注。如如:C语语言言对对数数据据类类型型检检查查的的机机制制比比较较弱弱;缺缺少少支支持持代代码码重重用用的的结结构构;随随着着软软件件工工程程规规模模的的扩扩大大,难难以以
7、适适应应开开发发特大型的程度等等。特大型的程度等等。6为为了了克克服服C语语言言本本身身存存在在的的缺缺点点,并并保保持持C语语言言简简洁洁、高高效效,与与汇汇编编语语言言接接近近的的特特点点,1980年年,贝贝尔尔实实验验室室的的BjarneStroustrup博博士士及及其其同同事事对对C语语言言进进行行了了改改进进和和扩扩充充,并并把把Simula67中中类类的的概概念念引引入入到到C中中。并并在在1983年年由由RickMaseitti提提议议正正式式命命名名为为C+(CPlusPlus)。后后来来,又又把把运运算算符符的的重重载载、引引用用、虚虚函函数数等等功功能能加加入入到到C+中
8、中,使使C+的的功能日趋完善。功能日趋完善。当当前前用用得得较较为为广广泛泛的的C+有有:VC+(VisualCPlus Plus)、BC+(Borland C Plus Plus)、AT&TC+等。等。7简单的简单的C+程序介绍程序介绍高级语言编译过程高级语言编译过程源程序源程序(文本文件)(文本文件)*.CPP目标文件目标文件(二进制文件)(二进制文件)*.OBJ可执行文件可执行文件(二进制文件)(二进制文件)*.EXE库文件库文件(各种函数)(各种函数)在在VitualC+系统中,可直接从源程序编译连接至可执行系统中,可直接从源程序编译连接至可执行程序,但依然要生成程序,但依然要生成*.
9、OBJ及及*.EXE这两个文件。这两个文件。F7编译编译连接连接compilelink8一个简单的一个简单的C+程序程序#includeusingnamespacestd;/使用命名空间使用命名空间stdintmain()cout“Iamastudent.n”;/输出字符串输出字符串return0;主函数主函数函数体函数体开始开始函数体函数体结束结束输出流,在屏幕上打输出流,在屏幕上打印引号内的字符串印引号内的字符串分号,一条完整分号,一条完整语句的结束符语句的结束符本程序编译执行后,在本程序编译执行后,在DOS屏幕上打印出屏幕上打印出Iamastudent.包含文件包含文件注释或说明注释或说
10、明9编译过程:编译过程:1)启动)启动VisualC+,选择选择“文件文件”菜单中的菜单中的“新建新建”命令,选择命令,选择“文件文件”标签中的标签中的“C+SourceFile”选项。选项。2)选择源程序存放的目录和输入源程序名,单击)选择源程序存放的目录和输入源程序名,单击“确定确定”。3)在在编辑器中编写源程序。编辑器中编写源程序。4)单击)单击F7或或“编译编译”中的中的“重建全部重建全部”编译源程编译源程序,若编译通过,单击序,若编译通过,单击“执行执行”,在,在DOS屏上看屏上看结果结果,任按一键返回编辑器。任按一键返回编辑器。10启动启动VC+编译系统编译系统11单击单击“Fil
11、e”菜菜单中单中“New”命命令令VC+编译编译系统界面系统界面12选择选择“Files”选项选项卡卡选择选择C+源源文件命令文件命令输入文件名输入文件名输入文件输入文件存放位置存放位置单击选择单击选择驱动器驱动器选择驱动选择驱动器或目录器或目录13C+源文件源文件编辑界面编辑界面输入输入C+源代码源代码14可以将此源可以将此源代码另起文代码另起文件名存盘件名存盘15选择编译命令,将源文选择编译命令,将源文件件.cpp生成生成.obj文件文件16错误所在行错误所在行错误的原因错误的原因如果编译出错,会出现提示信息,如果编译出错,会出现提示信息,指出错误的位置及种类指出错误的位置及种类17光标移
12、到该行光标移到该行双击错误双击错误所在行所在行18生成可执生成可执行文件行文件通过后单通过后单击该命令击该命令运行程序运行程序19运行结果显示运行结果显示在在DOS屏上屏上注意:不可以在软盘上注意:不可以在软盘上运行程序!应该把保存运行程序!应该把保存在软盘中的源文件拷贝在软盘中的源文件拷贝到硬盘的目录中再运行到硬盘的目录中再运行!20源程序所在目录源程序所在目录未编译前,只未编译前,只有一个源程序有一个源程序21编译运行后,出编译运行后,出现众多附加文件现众多附加文件同时,产生一个同时,产生一个子目录子目录Debug22Debug目录中,有目录中,有obj和和EXE文件文件23#includ
13、evoidmain(void)couti;/从键盘上输入变量从键盘上输入变量i的值的值cout“i的的值值为为:”in;/输输出出变变量量i的的值值另一个例子另一个例子24第二章第二章 数据类型、运算符与表达式数据类型、运算符与表达式25常量与变量常量与变量常量:在程序运行过程中,其值一直保持不变的量常量:在程序运行过程中,其值一直保持不变的量为常量。为常量。常量也区分不同的类型:常量也区分不同的类型:30,40为整型,为整型,30.0,40.0为实型,为实型,编辑器只是根据其表面形式来判断其编辑器只是根据其表面形式来判断其类型。类型。变量:在程序运行过程中,其值可以改变的量为变量:在程序运行
14、过程中,其值可以改变的量为变量。变量。变量在程序的执行中能够赋值,发生变化变量在程序的执行中能够赋值,发生变化。变量。变量有一个名字,有一个名字,并在使用之前要说明其类型并在使用之前要说明其类型,一经,一经说明,说明,就在内存中占据与其类型相应的存储单元。就在内存中占据与其类型相应的存储单元。26#includeusingnamespacestd;#definePRICE30/常量,在程序中保持不变常量,在程序中保持不变intmain()intnum,total;/定义变量定义变量,在内存中开辟区间在内存中开辟区间num=10;/变量赋值变量赋值,10为常量为常量total=num*PRICE
15、;cout“total=“total;/输出结果输出结果return0;其中:其中:num=10total=num*PRICE是赋值号,不同于数学意义上的等号。是赋值号,不同于数学意义上的等号。numtotal10300PRICE3027C+中有多种数据类型,均有常量与变量之分,各中有多种数据类型,均有常量与变量之分,各占不同的内存空间,正确定义与使用数据是编写程占不同的内存空间,正确定义与使用数据是编写程序的基本前提。序的基本前提。28变量名的命名方法:变量名的命名方法:变量名、数组名、函数名变量名、数组名、函数名称为称为标识符标识符。标识符只能由标识符只能由字母、数字、下划线字母、数字、下
16、划线这三种字符组成,且第这三种字符组成,且第一个字符必须为字母或下划线,长度不大于一个字符必须为字母或下划线,长度不大于247个字符,个字符,大小写不通用大小写不通用。(关键字不能作为标识符)。(关键字不能作为标识符)。关键字即是关键字即是VC+的语法要求中使用的字的语法要求中使用的字。如如intifwhile等。等。正确的标识符:正确的标识符:INT,sum,de12,SUM等。等。变量必须使变量必须使用前定义,以分配空间。用前定义,以分配空间。举例说明举例说明29abcEnglish 2xy x-y if Else b(3)def Chine_bbb3yAbsFloatfloat一般变量都
17、是用匈牙利命名法命名的。一般变量都是用匈牙利命名法命名的。intnCount;charchChoice;30整型数据整型数据整型常量:整型常量:常量是根据其表面形式来判定,整型量即是没有小数点的常量是根据其表面形式来判定,整型量即是没有小数点的整数,范围:整数,范围:-231(231-1),有三种形式,有三种形式:1)十进制(默认方式)十进制(默认方式)431345876542)八进制)八进制以以0开头开头043,056,0113)十六进制)十六进制以以0 x开头开头0 x120 xa30 x340 xdf(举例说明)(举例说明)31#includevoidmain(void)intint10
18、,int8,int16;/定义定义3个整型变量个整型变量int10=10;/默认为十进制默认为十进制int8=010;/八进制八进制int16=0 x10;/十六进制十六进制coutint10=int10endl;coutint8=int8endl;coutint16=int16endl;输出输出int10=10int8=8int16=1632整型变量:整型变量:分为有符号型与无符号型。分为有符号型与无符号型。有符号型:有符号型:short在内存中占两个字节,范围为在内存中占两个字节,范围为-215(215-1)int在内存中占四个字节,范围为在内存中占四个字节,范围为-231(231-1)l
19、ong在内存中占四个字节,范围为在内存中占四个字节,范围为-2-31231-1无符号型:无符号型:最高位不表示符号位最高位不表示符号位unsignedshort在内存中占两个字节,范围为在内存中占两个字节,范围为0216-1unsignedint在内存中占四个字节,范围为在内存中占四个字节,范围为0232-1unsignedlong在内存中占四个字节,范围为在内存中占四个字节,范围为0232-1331)整型常量整型常量亦有长短之分,常量中无亦有长短之分,常量中无unsigned型,但一型,但一个非负的整型常量可以赋给个非负的整型常量可以赋给unsigned型的变量。型的变量。2)若一个常量定义
20、为长整型数,则在其后加)若一个常量定义为长整型数,则在其后加l或或L进行区进行区分。分。如:如:32l32L564L等,内存为其分配四个字节存储。等,内存为其分配四个字节存储。一个数在内存中为一个数在内存中为1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1当这个数为有符号数时,是当这个数为有符号数时,是-1;为无符号数时,是;为无符号数时,是232-1内存中的数是以内存中的数是以补码补码的形式存放的。(举例说明)的形式存放的。(举例说明)1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 134#includevoidmain()unsignedshorta;shorti
21、ntb=-1;a=b;couta=aendl;结果:结果:65535不同类型的整型数据间不同类型的整型数据间的赋值归根到底就是一的赋值归根到底就是一条:条:按存储单元中的存按存储单元中的存储形式直接传送。储形式直接传送。a1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1b1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1unsignedshorta;35实型数据实型数据实型数又称浮点数,有两种表示方式:实型数又称浮点数,有两种表示方式:1)十进制形式:)十进制形式:23.024.53.567892)指数形式:指数形式:23E1145e-1356789e1e前有数字,后
22、前有数字,后面必须是整数。面必须是整数。实型变量分单精度实型变量分单精度float和双精度和双精度double两种形式:两种形式:float:占四个字节,提供占四个字节,提供78位有效数字。位有效数字。double:占八个字节,提供占八个字节,提供1516位有效数字。位有效数字。举例说明举例说明36#includeusingnamespacestd;intmain()floata,b;doublec,d;a=0.01;b=3.45678e-2;c=3.45678e-2;d=9.7654e-5;couta=atb=bendl;coutc=ctd=dendl;return0;a=0.01b=0.0
23、345678c=0.0345678d=9.7654e-005Pressanykeytocontinue37如果为实数,则用浮点数的形式在内存存储,表示如下:如果为实数,则用浮点数的形式在内存存储,表示如下:JtJSfS阶符阶符阶码阶码数符数符尾数尾数实数是既有整数又有小数的数。实数是既有整数又有小数的数。实数可以表示成:实数可以表示成:N=SRJS称为尾数,尾数决定有效数字,即数字的精度。称为尾数,尾数决定有效数字,即数字的精度。J表示指数(阶码)。表示指数(阶码)。R是基数,可取是基数,可取2,4,8,16等,对具体机器而言,基数等,对具体机器而言,基数取好后,就不能再变了。取好后,就不能再
24、变了。数有正有负数有正有负,所以设置数符所以设置数符;阶码亦有正负阶码亦有正负,所以设置阶所以设置阶符符38一般用一般用4个字节表示一个浮点数,也有用个字节表示一个浮点数,也有用8个字个字节表示的。节表示的。字长一定,尾数越多,精度越高;阶码越多,字长一定,尾数越多,精度越高;阶码越多,范围越大。范围越大。当计算机中出现小于机器所能表示的最小数当计算机中出现小于机器所能表示的最小数时,机器只能当零来处理时,机器只能当零来处理,当出现超过机器所能当出现超过机器所能表示的最大数时,出现溢出现象表示的最大数时,出现溢出现象,一旦出现溢出,一旦出现溢出,就会停止运算。就会停止运算。定点数,浮点数均会出
25、现溢出现定点数,浮点数均会出现溢出现象。象。39字符型数据(字符型数据(char)字符型数据实际上是作为字符型数据实际上是作为整型数据整型数据在内存中存储的。在内存中存储的。计算机是以字符编码的形式处理字符的,因此,我们在计算机内部计算机是以字符编码的形式处理字符的,因此,我们在计算机内部是以是以ASCII码码的形式表示所有字符的。所以的形式表示所有字符的。所以7位二进制数即可表示出位二进制数即可表示出一个字符,一个字符,我们用一个字节的容量(我们用一个字节的容量(8位)存储一个字符。位)存储一个字符。例如:字符例如:字符A的的ASCII码为码为0 x41或或65,在内存中表示为:,在内存中表
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 引言
限制150内