1.面向对象程序设计.ppt

上传人:p** 文档编号:166313 上传时间:2023-03-10 格式:PPT 页数:26 大小:228.50KB
下载 相关 举报
1.面向对象程序设计.ppt_第1页
第1页 / 共26页
1.面向对象程序设计.ppt_第2页
第2页 / 共26页
1.面向对象程序设计.ppt_第3页
第3页 / 共26页
1.面向对象程序设计.ppt_第4页
第4页 / 共26页
1.面向对象程序设计.ppt_第5页
第5页 / 共26页
1.面向对象程序设计.ppt_第6页
第6页 / 共26页
1.面向对象程序设计.ppt_第7页
第7页 / 共26页
1.面向对象程序设计.ppt_第8页
第8页 / 共26页
1.面向对象程序设计.ppt_第9页
第9页 / 共26页
1.面向对象程序设计.ppt_第10页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《1.面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《1.面向对象程序设计.ppt(26页珍藏版)》请在第壹文秘上搜索。

1、C+语言发展历史语言发展历史自从自从1946年第一台电子数字计算机年第一台电子数字计算机ENIAC问世以问世以来,随着计算机应用领域的不断扩大,促进了来,随着计算机应用领域的不断扩大,促进了计算机技术的高速发展,尤其是近年来计算机计算机技术的高速发展,尤其是近年来计算机的硬件和软件都是日新月异。作为应用计算机的硬件和软件都是日新月异。作为应用计算机的一种工具的一种工具程序设计语言,得到不断的充实程序设计语言,得到不断的充实和完善。每年都有新的程序设计语言问世,老和完善。每年都有新的程序设计语言问世,老的程序设计语言不断地更新换代。的程序设计语言不断地更新换代。 20世纪世纪60年代,年代,Ma

2、rtin Richards为计算机软件人员在开为计算机软件人员在开发系统软件时,作为记述语言使用而开发了发系统软件时,作为记述语言使用而开发了BCPL语言语言(Basic Combined Programming Language)。1970年,年,Ken Thompson在继承在继承BCPL语言的许多优点的基础上语言的许多优点的基础上发明了实用的发明了实用的B语言。到了语言。到了1972年,贝尔实验室的年,贝尔实验室的Dennis Ritchie和和Brian kernighan在在B语言的基础上语言的基础上,作作了进一步的充实和完善,设计出了了进一步的充实和完善,设计出了C语言。当时,语言

3、。当时,设设计计C语言是为了编写语言是为了编写UNIX操作系统的。操作系统的。以后以后,C语言经语言经过多次改进过多次改进,并开始流行。并开始流行。C+是在是在C语言的基础上发语言的基础上发展和完善的,展和完善的,而而C是吸收了其它语言的优点逐步成为是吸收了其它语言的优点逐步成为实用性很强的语言实用性很强的语言。C语言的主要特点是:语言的主要特点是:1、C语言是一种结构化的程序设计语言,语言是一种结构化的程序设计语言,语言本语言本身简洁、使用灵活方便。身简洁、使用灵活方便。既适用于设计和编写大既适用于设计和编写大的系统程序,又适用于编写小的控制程序,也适的系统程序,又适用于编写小的控制程序,也

4、适用科学计算。用科学计算。2、它既有高级语言的特点,又具有汇编语言的特它既有高级语言的特点,又具有汇编语言的特点。点。运算符丰富,除了提供对数据的算术逻辑运算运算符丰富,除了提供对数据的算术逻辑运算外,还提供了二进制的位运算。并且也提供了灵活外,还提供了二进制的位运算。并且也提供了灵活的数据结构。用的数据结构。用C语言编写的程序表述灵活方便,语言编写的程序表述灵活方便,功能强大。用功能强大。用C语言开发的程序,其结构性好,目语言开发的程序,其结构性好,目标程序质量高,程序执行效率高。标程序质量高,程序执行效率高。3、程序的可移植性好。程序的可移植性好。用用C语言在某一种型号的计语言在某一种型号

5、的计算机上开发的程序,基本上可以不作修改,而直接算机上开发的程序,基本上可以不作修改,而直接移植到其它型号和不同档次的计算机上运行。移植到其它型号和不同档次的计算机上运行。4、程序的语法结构不够严密,程序设计的自由度程序的语法结构不够严密,程序设计的自由度大大。这对于比较精通。这对于比较精通C语言的程序设计者来说,可语言的程序设计者来说,可以设计出高质量的非常通用的程序。但对于初学者以设计出高质量的非常通用的程序。但对于初学者来说,要能比较熟练运用来说,要能比较熟练运用C语言来编写程序,并不语言来编写程序,并不是一件容易的事情。与其它高级语言相比而言,调是一件容易的事情。与其它高级语言相比而言

6、,调试程序比较困难。往往是编好程序输入计算机后,试程序比较困难。往往是编好程序输入计算机后,编译时容易通过,而在执行时还会出错。但只要对编译时容易通过,而在执行时还会出错。但只要对C语言的语法规则真正领会,编写程序及调试程序语言的语法规则真正领会,编写程序及调试程序还是比较容易掌握的。还是比较容易掌握的。随着随着C语言应用的推广,语言应用的推广,C语言存在的一语言存在的一些缺陷或不足也开始流露出来,并受到大些缺陷或不足也开始流露出来,并受到大家的关注。如:家的关注。如:C语言对数据类型检查的语言对数据类型检查的机制比较弱;缺少支持代码重用的结构;机制比较弱;缺少支持代码重用的结构;随着软件工程

7、规模的扩大,难以适应开发随着软件工程规模的扩大,难以适应开发特大型的程度等等。特大型的程度等等。为了克服为了克服C语言本身存在的缺点,并保持语言本身存在的缺点,并保持C语言简语言简洁、高效,与汇编语言接近的特点,洁、高效,与汇编语言接近的特点,1980年,贝年,贝尔实验室的尔实验室的Bjarne Stroustrup博士及其同事对博士及其同事对C语语言进行了改进和扩充,并把言进行了改进和扩充,并把Simula 67中类的概念中类的概念引入到引入到C中。并在中。并在1983年由年由Rick Maseitti提议正式提议正式命名为命名为C+(C Plus Plus)。后来,)。后来,又把运算符的又

8、把运算符的重载、引用、虚函数等功能加入到重载、引用、虚函数等功能加入到C+中,使中,使C+的功能日趋完善。的功能日趋完善。当前用得较为广泛的当前用得较为广泛的C+有:有:VC+ (Visual C Plus Plus)、)、 BC+(Borland C Plus Plus)、)、AT&T C+等。等。简单的简单的C+程序介绍程序介绍高级语言编译过程高级语言编译过程源程序源程序(文本文件)(文本文件)*.CPP目标文件目标文件(二进制文件)(二进制文件)*.OBJ可执行文件可执行文件(二进制文件)(二进制文件)*.EXE库文件库文件(各种函数)(各种函数)在在Vitual C+系统中,可直接从源

9、程序编译连接至可执行系统中,可直接从源程序编译连接至可执行程序,但依然要生成程序,但依然要生成*.OBJ及及*.EXE这两个文件。这两个文件。F7编译编译连接连接compilelink一个简单的一个简单的C+程序程序#includevoid main(void ) cout“I am a student.n”; /输出字符串输出字符串主函数主函数函数体函数体开始开始函数体函数体结束结束输出流,在屏幕上打输出流,在屏幕上打印引号内的字符串印引号内的字符串分号,一条完整分号,一条完整语句的结束符语句的结束符本程序编译执行后,在本程序编译执行后,在DOS屏幕上打印出屏幕上打印出 I am a stu

10、dent.包含文件包含文件注释或说明注释或说明l1. C+的基本数据类型l bool char int float doublel 五种基本数据类型lVC+6.0中规定了:l bool (1个字节) char(1个字节) int(4个字节) l float(4个字节) double(8个字节)l限定词限定词unsignedl unsigned(无符号) signed(有符号)l整数类型int和char的首位通常是一个符号位,如果首位为0,数值是正数,否则数值为负。l例如:char为一个字节8位,它的数值范围为-128127,有一半被负数占用。l unsigned char为一个字节8位,数值范

11、围为0255。l其他的int float double 类似。l2. C+的基本控制结构的基本控制结构lIf (表达式)语句1l else 语句2 l switch(表达式) l case 常量表达式1:语句1l l case 常量表达式n:语句nl default:语句n+1l l例如:/test.cppl #includel using namespace std;l int main()l int day;l cinday;l switch(day)l case 1:cout“Monday”endl;break;l l case 7:cout“Sunday”endl;break;l de

12、fault:cout“input error”endl;break;l l return 0;ll如输入为2 显示结果为 2l Tuesdayl循环结构有三种:l 1) while(表达式) 语句l 2) do 语句l while(表达式) l3) for(表达式1;表达式2;表达式3;) 语句l其他控制语句:l break continue l goto 注:goto语句的使用会破坏程序的 l 整体结构 l l注释:lC+同样具有多行注释和单行注释能力l / 单行注释l/* . */ 多行注释l运算符new和delete提供了动态存储分配和释放内存的功能。l new type(分配变量) l

13、 new typen(分配数组) 并且new返回的是一个指针 例如:int *p=new int int *p=new int10 释放内存空间 delete p(释放变量空间) 或 delete p (释放数组空间)l#includelusing namespace std;l int main()ll int *p;l p=new int; p=new int(10)l *p=10; l coutb?a:b); lC+编码有时需要定义许多简单的小函数,对于这些小函数,函数调用的开销与花费在被调用函数上的时间相比变的很大。使用内联函数,例如在编译时,在调用max函数的地方用函数体代替,能够加

14、快代码执行,减少调用开销。l (注意:只有当内联函数包含很少语句的代注意:只有当内联函数包含很少语句的代 l 码时,才能执行展开码时,才能执行展开)l1. const表示变量和参数的只读。l const int num=5; l const char ch=“hello”; /只读字符串l num=6 /非法 ch3=w/非法l2. const与指针一起使用:l1)指向常量的指针l const char *p=“bcdefg”;l p3=a; /非法l p=ch; /合法 const char*step3=“left”,”right”,midle”;l step2=“skip”; /?l st

15、ep21=w /?l2) 常指针 l char *const p=“hello”; /常指针l p3=a /合法l p=“ddddd” /非法char* const step3=“left”,”right”,midle”;l step2=“skip”; /?l step21=w /?3)指向常量的常指针 即二者都要申明constl const char *const p=“hello”;l p3=a /非法l p=“ddddd” /非法l传统的编程思想中,一个函数执行为其编写的特定的任务。l C+支持函数重载:两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的

16、类型及个数自动确定调用哪个函数。l形参类型不同:l int add(int x,int y) float add(float x,float y)l形参个数不同:l int add(int x,int y) int add(int x,int y,int z)l注意:编译器不能以返回值来区分函数l int add(int x,float y) float add(int x,float y)l/非法l问题:l int add(int x,int y) l void add(int x,int y)/是否冲突?l void function_1(char *p) l void function_1(char x)l实际上每个重载函数在内部通过编译器编译时,都带有一个反映函数特征标记的名字。因此,在一个已经编译的程序中,没有同名的函数。l考虑函数重载的实际应用意义l(联系多态性:以银行帐户对象为例)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!