欢迎来到天天文库
浏览记录
ID:48750764
大小:329.00 KB
页数:31页
时间:2020-01-21
《第2章-从C语言向C++过渡.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第二章从C语言向C++过渡主讲:宋丽红面向对象程序设计(C++)OrientedObjectProgramming(C++)第二章从C语言向C++过渡§2-1C++语言的发展过程§2-2在较小范围内如何将C++增强C§2-3在较大范围内如何将C++增强C§2-1C++语言的发展过程C++语言基于C,是C的一个超集集合。C++继承了C的全部优点,而且还支持面向对象特征。C++由BCPL和Simula67的某些灵感而导致产生的。1980年,C++由贝尔实验室的BjarneStroustrup创建,被称为带类的C。1994年,建立ANSIC++标准。§2-2在较小范围内如何将C++增强C一、
2、I/O流控制二、内联函数三、函数重载四、默认参数的函数五、new和delete六、const说明符七、引用八、程序结构九、其他§2-2在较小范围内如何将C++增强C2.2.1I/O流控制C++中输入/输出流(一般叫iostreams或streams)提供了C的stdio.h库中的所有功能。输入/输出流用作将具有类型的对象转换成可读的正文,反之亦然。流能读写二进制数据。C++程序以四个预定义的流开始,它们是:cin标准输入、cout标准输出、cerr标准错、clog缓冲的cerr。标准输入输出流p23在iostream.h中说明cout<<输出流cin>>输入流接收变量cout<<“He
3、llo,world!”inta;cin>>a;cout<<“姓名:??”<<“年龄:?”cin>>a>>f>>c;§2-2在较小范围内如何将C++增强C2.2.1I/O流控制2、使用控制符#include注意1、输入流能自动跳过空白字符2、字符串输入避免溢出,可采取以下方法:chararray[SIZE];cin.width(sizeof(array));cin>>array;§2-2在较小范围内如何将C++增强C2.2.2内联函数使用关键字inline说明的函数是内联函数。作用相当于带参数的宏。使用内联函数的必要性内联函数增加了代码空间,但减少了执行时间(函
4、数调用开销)#includevoidmain(){charc;intisnumber(char);cout<<”Enteracharacter:”;cin>>c;if(isnumber(c))cout<<”Youenteredadigit.”elsecout<<”Youenteredanon-digit.”}intisnumber(charc){return(c>=’0’&&c<=’9’)?1:0;}对于isnumber这样简单的函数,使用函数调用的方法(特别是多次调用)将大大降低运行效率,可以采用if((c>=’0’&&c<=’9’)?1:0)表达式替换的方法
5、。但是,手工替换很烦琐,最好让编译程序去做。内联函数是程序行的扩展,主要是解决程序的运行效率。§2-2在较小范围内如何将C++增强C内联函数的使用(1)在函数声明和定义的最前面加关键字inline在函数声明时必须有inline,定义时可有可无。#includevoidmain(){charc;inlineintisnumber(char);……}inlineintisnumber(charc)//或用intisnumber(charc){return(c>=’0’&&c<=’9’)?1:0;}§2-2在较小范围内如何将C++增强C内联函数的使用(2)内联函数必须
6、在调用之前声明或定义。因为内联函数的代码必须在被替换之前已经生成被替换的代码。#includeinlineintisnumber(charc){return(c>=’0’&&c<=’9’)?1:0;}voidmain(){charc;//inlineintisnumber(char);……}§2-2在较小范围内如何将C++增强C内联函数的函数体限制内联函数中不能含有复杂的结构控制语句,否则,编译时将该函数视同普通函数那样产生函数调用代码。递归函数是不能被用来做内联函数的。内联函数只适合于只有1~5行的小函数,而且不能频繁地被调用。§2-2在较小范围
7、内如何将C++增强C2.2.3函数重载使用重载函数的必要性在不同类型上作相同运算而又用相同名字的情况,称为重载。intadd(intx,inty){inttemp;temp=x+y;returntemp;}doubleadd(doublex,doubley){doubletemp;temp=x+y;returntemp;}main(){inta=4,b=5;doublex=12.5,y=75.75;cout<
此文档下载收益归作者所有