谭浩强C面向对象程序设计.pptx
《谭浩强C面向对象程序设计.pptx》由会员分享,可在线阅读,更多相关《谭浩强C面向对象程序设计.pptx(33页珍藏版)》请在咨信网上搜索。
单击此处编辑母版标题样式,单击此处编辑母版副标题样式,C+,程序设计,中国高等院校计算机基础教育课程体系规划教材,谭浩强 编著,总 目 录,第1篇 基 本 知 识,第1章,C+,的初步知识,第2章 数据类型与表达式,第2篇 面向过程的程序设计,第3章 程序设计初步,第4章 函数与预处理,第5章 数组,第6章 指针,第7章 自定义数据类型,第3篇 基于对象的程序设计,第8章 类和对象,第9章 关于类和对象的进一步讨论,第10章 运算符重载,第4篇 面向对象的程序设计,第11章 继承与派生,第12章 多态性与虚函数,第13章 输入输出流,第14章,C+,工具,第1章,C+,的初步知识,第2章 数据类型与表达式,第1篇基 本 知 识,第1章,C+,的初步知识,*1.1,从,C,到,C+,*1.2,最简单的,C+,程序,1.3,C+,程序的构成和书写形式,1.4,C+,程序的编写和实现,1.5 关于,C+,上机实践,计算机诞生初期,人们要使用计算机必须用机器语言或汇编语言编写程序。世界上第一种计算机高级语言诞生于1954年,它是,FORTRAN,语言。先后出现了多种计算机高级语言。其中使用最广泛、影响最大的当推,BASIC,语言和,C,语言。,BASIC,语言是1964年在,FORTRAN,语言的基础上简化而成的,它是为初学者设计的小型高级语言。,C,语言是1972年由美国贝尔实验室的,D.M.Ritchie,研制成功的。它不是为初学者设计的,而是为计算机专业人员设计的。大多数系统软件和许多应用软件都是用,C,语言编写的。,*1.1 从,C,到,C+,但是随着软件规模的增大,用,C,语言编写程序渐渐显得有些吃力了。,C+,是由,AT&T Bell(,贝尔)实验室的,Bjarne Stroustrup,博士及其同事于20世纪80年代初在,C,语言的基础上开发成功的。,C+,保留了,C,语言原有的所有优点,增加了面向对象的机制。,C+,是由,C,发展而来的,与,C,兼容。用,C,语言写的程序基本上可以不加修改地用于,C+。,从,C+,的名字可以看出它是,C,的超集。,C+,既可用于面向过程的结构化程序设计,又可用于面向对象的程序设计,是一种功能强大的混合型的程序设计语言。,C+,对,C,的,“,增强,”,,表现在两个方面:,(1)在原来面向过程的机制基础上,对,C,语言的功能做了不少扩充。,(2)增加了面向对象的机制。,面向对象程序设计,是针对开发较大规模的程序而提出来的,目的是提高软件开发的效率。,不要把面向对象和面向过程对立起来,面向对象和面向过程不是矛盾的,而是各有用途、互为补充的。,学习,C+,,既要会利用,C+,进行面向过程的结构化程序设计,也要会利用,C+,进行面向对象的程序设计。本书既介绍,C+,在面向过程程序设计中的应用,也介绍,C+,在面向对象程序设计中的应用。,例1.1 输出一行字符:,“,This is a C+program.,”,。,程序如下:,#,include /,包含头文件,iostream,using namespace std;/,使用命名空间,std,int main(),coutab;/,输入语句,sum=a+b;/,赋值语句,couta+b=sumy)z=x;/if,语句,如果,xy,,则将,x,的值赋给,z,else z=y;/,否则,将,y,的值赋给,z,return(z);/,将,z,的值返回,通过,max,带回调用处,/,max,函数结束,int main()/,主函数,/主函数体开始,int a,b,m;/,变量声明,cinab;/,输入变量,a,和,b,的值,m=max(a,b);/,调用,max,函数,将得到的值赋给,m,coutmax=mab;,c=max(a,b);/,调用,max,函数,coutmax=cy)z=x;,else z=y;,return(z);,只要在被调用函数的首部的末尾加一个分号,就成为对该函数的函数声明。函数声明的位置应当在函数调用之前。,下面举一个包含类(,class),和对象(,object),的,C+,程序,目的是使读者初步了解,C+,是怎样体现面向对象程序设计方法的。,例1.4 包含类的,C+,程序。,#,include /,预处理命令,using namespace std;,class Student /,声明一个类,类名为,Student,private:/,以下为类中的私有部分,int num;/,私有变量,num,int score;/,私有变量,score,public:/,以下为类中的公用部分,void setdata()/,定义公用函数,setdata,cinnum;/,输入,num,的值,cinscore;/,输入,score,的值,void display()/,定义公用函数,display,coutnum=numendl;/,输出,num,的值,coutscore=scoreendl;/,输出,score,的值,;,;/类的声明结束,Student stud1,stud2;/,定义,stud1,和,stud2,为,Student,类的变量,称为对象,int main()/,主函数首部,stud1.setdata();/,调用对象,stud1,的,setdata,函数,stud2.setdata();/,调用对象,stud2,的,setdata,函数,stud1.display();/,调用对象,stud1,的,display,函数,stud2.display();/,调用对象,stud2,的,display,函数,return 0;,在一个类中包含两种成员:数据和函数,分别称为数据成员和成员函数。在,C+,中把一组数据和有权调用这些数据的函数封装在一起,组成一种称为,“,类(,class),”,的数据结构。在上面的程序中,数据成员,num,score,和成员函数,setdata,display,组成了一个名为,Student,的,“,类,”,类型。成员函数是用来对数据成员进行操作的。也就是说,一个类是由一批数据以及对其操作的函数组成的。,类可以体现数据的封装性和信息隐蔽。在上面的程序中,在声明,Student,类时,把类中的数据和函数分为两大类:,private(,私有的)和,public(,公用的)。把全部数据(,num,score),指定为私有的,把全部函数(,setdata,display),指定为公用的。在大多数情况下,会把所有数据指定为私有,以实现信息隐蔽。,具有,“,类,”,类型特征的变量称为,“,对象,”,(,object)。,程序中第1824行是主函数。,程序运行情况如下:,1001 98.5,(输入学生1的学号和成绩),1002 76.5,(输入学生2的学号和成绩),num=1001 (,输出学生1的学号),score=98.5 (,输出学生1的成绩),num=1002 (,输出学生2的学号),score=76.5 (,输出学生2的成绩),C+,程序的结构和书写格式归纳如下:,(1)一个,C+,程序可以由一个程序单位或多个程序单位构成。每一个程序单位作为一个文件。在程序编译时,编译系统分别对各个文件进行编译,因此,一个文件是一个编译单元。,(2)在一个程序单位中,可以包括以下几个部分:,预处理命令。上节4个程序中都包括#,include,命令。,全局声明部分(在函数外的声明部分)。在这部分中包括对用户自己定义的数据类型的声明和程序中所用到的变量的定义。,1.3,C+,程序的构成和书写形式,函数。函数是实现操作的部分,因此函数是程序中必须有的和最基本的组成部分。每一个程序必须包括一个或多个函数,其中必须有一个(而且只能有一个)主函数(,main,函数)。,但是并不要求每一个程序文件都必须具有以上3个部分,可以缺少某些部分(包括函数)。,(3)一个函数由两部分组成:,函数首部,即函数的第一行。包括函数名、函数类型、函数属性、函数参数(形参)名、参数类型。,一个函数名后面必须跟一对圆括号,函数参数可以缺省,如,int main()。,函数体,即函数首部下面的大括号内的部分。如果在一个函数中有多个大括号,则最外层的一对 为函数体的范围。,函数体一般包括:,局部声明部分(在函数内的声明部分)。包括对本函数中所用到的类型、函数的声明和变量的定义。,对数据的声明既可以放在函数之外(其作用范围是全局的),也可以放在函数内(其作用范围是局部的,只在本函数内有效)。,执行部分。由若干个执行语句组成,用来进行有关的操作,以实现函数的功能。,(4)语句包括两类。一类是声明语句,另一类是执行语句。,C+,对每一种语句赋予一种特定的功能。语句是实现操作的基本成分,显然,没有语句的函数是没有意义的。,C+,语句必须以分号结束。,(5)一个,C+,程序总是从,main,函数开始执行的,而不论,main,函数在整个程序中的位置如何。,(6)类(,class),是,C+,新增加的重要的数据类型,是,C+,对,C,的最重要的发展。有了类,就可以实现面向对象程序设计方法中的封装、信息隐蔽、继承、派生、多态等功能。在一个类中可以包括数据成员和成员函数,他们可以被指定为私有的(,private),和公用的(,public),属性。私有的数据成员和成员函数只能被本类的成员函数所调用。,(7),C+,程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上。,C+,程序没有行号,也不像,FORTRAN,或,COBOL,那样严格规定书写格式(语句必须从某一列开始书写)。,(8)一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。,C+,还保留了,C,语言的注释形式,可以用,“,/*,*/,”,对,C+,程序中的任何部分作注释。在,“,/*,”,和,“,*/,”,之间的全部内容作为注释。,用,“,/,”,作注释时,有效范围只有一行,即本行有效,不能跨行。而用,“,/*,*/,”,作注释时有效范围为多行。只要在开始处有一个,“,/*,”,,在最后一行结束处有一个,“,*/,”,即可。因此,一般习惯是:内容较少的简单注释常用,“,/,”,,内容较长的常用,“,/*,*/,”,。,一个程序从编写到最后得到运行结果要经历以下一些步骤。,1.用,C+,语言编写程序,用高级语言编写的程序称为,“,源程序,”,(,source program)。C+,的源程序是以.,cpp,作为后缀的(,cpp,是,c plus plus,的缩写)。,2.对源程序进行编译,为了使计算机能执行高级语言源程序,必须先用一种称为,“,编译器(,complier),”,的软件(也称编译程序或编译系统),把源程序翻译成二进制形式的,“,目标程序(,object program),”,。,1.4,C+,程序的编写和实现,编译是以源程序文件为单位分别编译的。目标程序一般以.,obj,或.,o,作为后缀(,object,的缩写)。编译的作用是对源程序进行词法检查和语法检查。编译时对文件中的全部内容进行检查,编译结束后会显示出所有的编译出错信息。一般编译系统给出的出错信息分为两种,一种是错误(,error);,一种是警告(,warning),。,3.将目标文件连接,在改正所有的错误并全部通过编译后,得到一个或多个目标文件。此时要用系统提供的,“,连接程序(,linker),”,将一个程序的所有目标程序和系统的库文件以及系统提供的其他信息连接起来,最终形成一个可执行的二进制文件,它的后缀是.,exe,,是可以直接执行的。,4.运行程序,运行最终形成的可执行的二进制文件(.,exe,文件),得到运行结果。,5.分析运行结果,如果运行结果不正确,应检查程序或算法是否有问题。,图1.1,在了解了,C+,语言的初步知识后,读者最好尽快在计算机上编译和运行,C+,程序,以加深对,C+,程序的认识,并初步掌握,C+,的上机操作。,读者可以使用不同的,C+,编译系统,在不同的环境下编译和运行一个,C+,程序。但是需要强调的是,我们学习的是,C+,程序设计,应当掌握的是标准,C+,,而不应该只了解某一种,“,方言化,”,的,C+。,不应当只会使用一种,C+,编译系统,只能在一种环境下工作,而应当能在不同的,C+,环境下运行自己的程序,并且了解不同的,C+,编译系统的特点和使用方法,在需要时能将自己的程序方便地移植到不同的平台上。,1.5 关于,C+,上机实践,在本书的参考书,C+,程序设计题解与上机指导一书中简单介绍了在,Visual C+6.0,和,GCC,两种典型的环境下运行,C+,程序的方法。,请读者选择一种(如能做到两种更好),C+,编译系统,在该环境下输入和运行习题中的程序,掌握上机的方法和步骤。,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 谭浩强 面向 对象 程序设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文