免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 雪花啤酒
打印 上一主题 下一主题

http://hongen.com/proedu/jsjkj/jsjdjks/stjj/html/jj042554.ht [复制链接]

论坛徽章:
0
11 [报告]
发表于 2003-11-15 14:32 |只看该作者

http://hongen.com/proedu/jsjkj/jsjdjks/stjj/html/jj042554.ht

函数重载:\r\n同一个函数可以对应多个函数的实现。\r\n\r\n列如,可以给函数名 add()定义多个函数 实现,\r\n\r\n该函数的 功能是求和,   其中,   一个函数实现\r\n  \r\n是求两个  int型数之和,  另外一个,是求两个\r\n \r\n\r\n浮点数之和,  再一个  求两个复数和。 \r\n\r\n\r\n这种实现、 对应着一个函数体,   这些函数的名字相同, 但是函数的 参数的\r\n类型不同。这就是       函数重载的     概念。\r\n\r\n\r\n函数重载要求编译器  能够  唯一地  确定     调用一个函数时应执行哪个\r\n函数代码,    确定函数实现时,要求从函数参数的 个数和类型上来区分。\r\n\r\n就是说, 进行函数重载时,要求同名函数在参数个数 上不同,或者参数 类型不同。\r\n否则,将无法实现重载。\r\n\r\n下面就举一个在参数类型上不同 的重载函数的例子。\r\n求两个操作数之和。\r\n#include<iostream.h>;\r\nint add(int,int)\r\ndouble add(double,double);\r\nvoid main()\r\n{\r\n    cout<<add(5,10)<<endl;\r\n    cout<<add(5.0,10.5)<<endl;\r\n}\r\nint add(int x,int y)\r\n{\r\n    return x=y;\r\n}\r\ndouble add(double a,double b)\r\n{\r\n    return a+b;\r\n}\r\n此程序中,main()函数中调用相同名字add的两个函数,前边一个add()函数对应的\r\n是两个int 型数求和的 函数实现,而后边的一个add()函数对应的  是两个double型\r\n数求和的函数实现。。\r\n这就是重载。

论坛徽章:
0
12 [报告]
发表于 2003-11-15 14:38 |只看该作者

http://hongen.com/proedu/jsjkj/jsjdjks/stjj/html/jj042554.ht

递归调用的过程:\r\n一:递推;\r\n二:回归。\r\n编程从键盘上输入一个数存如变量n中,求n!.程序如下:\r\n#include<iostream.h>;\r\nlong int fac(int n);\r\nvoid main()\r\n{\r\n   int n;\r\n   cout<<\"Input a positive integer:\";\r\n   cin>;>;n;\r\n   long fa=fac(n);\r\n   cout<<n<<\"!=\"<<fa<<endl;\r\n}\r\nlong int fac(int n)\r\n{\r\n   long int p;\r\n   if(n==0)p=1;\r\nelse\r\n    p=n*fac(n-1);\r\n    return p;\r\n}

论坛徽章:
0
13 [报告]
发表于 2003-11-15 15:06 |只看该作者

http://hongen.com/proedu/jsjkj/jsjdjks/stjj/html/jj042554.ht

作用域:\r\n#include<iostream.h>;\r\nvoid main()\r\n{\r\n   int a(5),b(7),c(10);\r\n   cout<<a<<\".\"<<b<<\".\"<<c<<endl;\r\n   {\r\n      int b(;\r\n      float c(8.;\r\n      cout<<a<<\",\"<<b<<\",\"<<c<<endl;\r\n      a=b;\r\n      {\r\n          int c;\r\n          c=b;\r\n          cout<<a<<\",\"<<b<<\",\"<<c<<endl;\r\n       }\r\n      cout<<a<<\",\"<<b<<\",\"<<c<<endl;\r\n    }\r\n    cout<<a<<\",\"<<b<<\",\"<<c<<endl;\r\n}\r\n  \r\n局部变量和全局变量:\r\n局部:自动类,内部类静态,函数参数。\r\n全局:(程序级和文件级)1:外部,2:外部静态。\r\n\r\n\r\nauto 说明符(可省略)\r\n寄存器类变量,定义时加rigester.可能存放到cpu的通用寄存器中,\r\n一般 是char,int.不宜过多。\r\n内部静态类变量是 定义在函数体内或分程序内,并且用说明符static说明的 \r\n一种变量。它的 作用域与自动变量相同,但是它的生存期(即寿命)是长的 ,\r\n这是一种可见性与存在性不一致的一种变量。\r\n全局变量:\r\n外部变量 是一种定义在函数体外,定义时不加任何存储类说明的一种变量。\r\n外部变量在引用之前要说明 ,说明外部变量时应在前面加说明符extern表示\r\n该变量是外部变两。在一个文件中,先引用 后定义 的外部变量引用前必须说明,\r\n这称为外部变量提前说明。\r\n\r\n在一个程序中,一个外部变量只能定义一次。\r\n但是可以说明多次 。\r\n例题:\r\n#include<iostream.h>;\r\nvoid other()\r\nvoid main()\r\n{\r\nint a(3);\r\nregist int b(5);\r\nstatic int c;\r\ncout<<\"a=\"<<a<<\",\"<<\"b=\"<<b<<\",\"<<c<<endl;\r\nother();\r\nother();\r\n}\r\nvoid other()\r\n{\r\nint a(5);\r\nstatic int b(12);\r\na+10;\r\nb+=20;\r\ncout<<\"a=\"<<a<<\",\"<<\"b=\"<<b<<endl;\r\n}

论坛徽章:
0
14 [报告]
发表于 2003-11-15 15:21 |只看该作者

http://hongen.com/proedu/jsjkj/jsjdjks/stjj/html/jj042554.ht

分析 下列程序的输出结果。\r\n你可以告诉我如何 全编译连接下边的三个文件生成一个.mak的项目文件?????\r\n下面我把这三个文件的内容写下:\r\n文件1(main.cpp)\r\n#include<iostream.h>;\r\nvoid fun1(),fun2(),fun3();\r\nint i(5);\r\nvoid main()\r\n{\r\ni=20;\r\nfun1();\r\ncout<<\"main():i=\"<<i<<endl;\r\nfun2();\r\ncout<<\"main():i=\"<<i<<endl;\r\nfun3();\r\ncout<<\"main():i=\"<<i<<endl;\r\n}\r\n文件file1.cpp内容如下:\r\n#include<iostream.h>;\r\nstatic int i;\r\nvoid fun1()\r\n{\r\ni=50;\r\ncout<<\"fun1():i(static)=\"<<i<<endl;\r\n}\r\n文件file2.cpp内容如下:\r\n#include<iostream.h>;\r\nvoid fun2()\r\n{\r\nint i=15;\r\ncout<<\"fun2():i(auto)=\"<<i<<endl;\r\nif(i)\r\n{\r\nextern int i;\r\ncout<<\"fun2():i(extern)=\"<<i<<endl;\r\n}\r\n}\r\nextern int i;\r\nvoid fun3()\r\n{\r\ni=30;\r\ncout<<\"fun3():i(extern)=\"<<i<<endl;\r\nif(i)\r\n{\r\nint i=10;\r\ncout<<\"fun3():i(auto)=\"<<i<<endl;\r\n}\r\n}\r\n\r\n好了,今天就到这里,朋友们明天见!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP