C语言从结构化程序设计到面向对象.ppt
《C语言从结构化程序设计到面向对象.ppt》由会员分享,可在线阅读,更多相关《C语言从结构化程序设计到面向对象.ppt(34页珍藏版)》请在三一办公上搜索。
1、1,第9章 从结构化程序设计到面向对象的程序设计,北京交通大学计算机学院计算机程序设计基础课程组,2,教学目标,了解C+对C的扩充和改进掌握面向对象程序设计的基本思想和方法掌握面向对象的概念理解面向对象程序设计的特性,3,9.1 C+对C的改进和扩充 9.2 面向对象程序设计方法9.2.1 面向对象概念9.2.2 类和对象 9.2.3 面向对象程序设计的特性,4,9.1.1 输入输出流,scanf和printf输入输出的缺陷输入输出流的概念:输入输出是以字节流的形式实现的,流实际上是一个字节序列。在输入操作中,字节从输入设备流向内存;输出操作中,字节从内存流向输出设备。流是一个抽象的概念,实际
2、进行输入输出时,流通常都是和某种具体的物理设备联系起来。键盘和显示器是计算机的标准输入输出设备,数据从键盘或磁盘文件流入内存的操作称为提取操作,数据从内存流向屏幕或磁盘文件称为插入操作。,9.1 C+对C的改进和扩充,5,用cout进行输出 用cout进行输出时必须与预定义的插入符void main()int i=10;float j=8.5;char*str=Windows!;cout i=i endl;cout j=j endl;cout str=str endl;,9.1 C+对C的改进和扩充,6,用cin进行输入用cin进行输入时必须与预定义的提取符一起使用,输入时不用指定数据类型,也
3、可以使用多个提取符,将键盘输入的数据送到输入流cin中,然后存到内存。#includevoid main()/*主函数*/int i1,i2,sum;/*变量定义*/cout i1 i2;/*输入数据*/sum=i1+i2;/*计算i1,i2的和*/cout sum=sum endl;/*输出sum的值*/,9.1 C+对C的改进和扩充,7,1、重载的需要性在C中,每个函数需要唯一的名字,例如,求两个数中较大的数,对于不同类型需要不同的名字:int imax(int,int);float fmax(float,float);double dmax(double,double);函数的重载:即建
4、立多个同名函数,但每个函数的参数个数或类型不同,系统根据参数个数和类型决定调用哪个函数。例如,将上面三个函数的声明改为:int max(int,int);float max(float,float);double max(double,double);,9.1 C+对C的改进和扩充,9.1.2 函数的重载,8,2、使用说明仅返回类型不同,但函数名和形参都相同,则是非法的,如:int fun(int a,int b);long fun(int a,int b);同名函数应该具有相同的功能,仅数据类型不同而已,否则可读性受破坏当重载函数有默认参数时,应避免二义性int fun(int a,b=0)
5、;int fun(int a);/error,9.1 C+对C的改进和扩充,9,【例9-4】参数类型上不同的重载函数#includeint add(int,int);double add(double,double);void main()cout add(5,10)endl;cout add(5.6,10.2)endl;int add(int x,int y)return x+y;double add(double x,double y)return x+y;,9.1 C+对C的改进和扩充,10,【例9-5】参数个数上不同的重载函数#includeint min(int a,int b);i
6、nt min(int a,int b,int c);void main()cout min(-2,8)endl;cout min(3,5,4)endl;int min(int a,int b)return a b?a:b;int min(int a,int b,int c)int t=min(a,b);return min(t,c);,9.1 C+对C的改进和扩充,11,9.1.3 带默认参数的函数,函数定义时给一个或多个参数指定默认值,调用时,如果省略参数,自动按默认值传递。1.默认参数的声明(1)当有函数声明时void point(int x=3,int y=4)/声明中给出默认值void
7、 point(int x,int y)/定义中不允许给出默认值 coutxyendl;(2)没有函数声明时,在定义函数中给出默认值2.默认参数的顺序规定默认参数必须是最右边的参数,即一个指定了默认值参数的右边,不能出现没有指定的默认参数。void fun(int a=1,int b,int c=3);/errorvoid fun(int a,int b=2,int c=3);/ok,9.1 C+对C的改进和扩充,12,【例9-6】使用默认参数计算立方体体积#includeint volume(int length,int width=10,int height=20)void main()in
8、t l(50),w(40),h(30),area;area=volume(l,w,h);cout“The area of cube equal:t”areaendl;area=volume(l,w);cout“The area of cube equal:t”areaendl;area=volume(l);cout“The area of cube equal:t”areaendl;int volume(int length,int width,int height)return length*width*height;,13,9.1.4 内联函数,1.内联函数的需要性#include int
9、 isnumber(char);/函数声明void main()char c;while(c=cin.get()!=n)if(isnumber(c)/调用一个小函数 cout=0,9.1 C+对C的改进和扩充,14,2.解决办法限定符inline用于函数定义,称为内联函数。将isnumber()函数声明为inline,即在函数声明和定义中:inline int isnumber(char);/inline不能少void main()/inline int isnumber(char c)return(ch=0 3.内联函数的函数体限制:inline用于经常用的小函数(15行)内联函数内不能使用
10、循环和开关语句递归函数不能做内联函数,9.1 C+对C的改进和扩充,15,9.1.5 一元作用域运算符(:),用:在同名局部变量作用域中访问全局变量#include double n=5;int main()float n=8;cout Local float value of n=n nGlobal double value of n=:n endl;return 0;,结果:Local float value of n=8Global double value of n=5,9.1 C+对C的改进和扩充,16,9.1.6 引用与函数,1.引用的概念引用是别名,声明引用的过程就是给某个变量建
11、立别名的过程。一般形式为:数据类型 说明:程序找引用的地址,只能找到所引用目标的地址引用一旦初始化,它就维系在一定的目标上不在分开,9.1 C+对C的改进和扩充,17,【例9-7】声明和使用引用#includevoid main()int num1=2;int,运行结果:num1=2rNum=2num1=5num2=5rNum=5&num1=0 x0012FF7C&num2=0 x0012FF74&rNum=0 x0012FF7C,9.1 C+对C的改进和扩充,18,2.引用作函数的参数【例9-8】用引用作函数参数。#includevoid squareByReference(int,9.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 结构 程序设计 面向 对象
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6503775.html