第五章 函数.ppt

  1. 1、本文档共79页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 函数 5.1 函数的定义、调用与说明 5.2 函数间参数传递 5.3 递归函数 5.4 函数参数缺省 5.5 函数重载 5.6 函数模板 5.7 作用域与存储类 非void型函数 函数体中必须有return语句,形式为:      return 表达式 ; 或 return (表达式) ;   用于返回函数值。表达式值的类型与函数类型最好一致。 void型函数 函数体中return语句可以不出现。若出现,则不能带表达式。 5.1.3 函数调用 形式: 5.2 函数间参数传递 5.2.2 引用参数 5.2.3 数组名作参数 5.3 递归函数 递归函数:一个函数在它的函数体的内部,直接或间接地调用它自身 5.4 函数参数缺省 5.5 函数重载 5.6 函数模板 5.7.1 自动变量 5.7.2 静态局部变量 5.7.3 全局变量 5.8 程序举例 使用函数重载需编写多个函数,而利用函数模板只需定义一个通用函数即可。 利用函数模板定义的函数称为模板函数,形式: template class 类型参数表 类型 函数名( 参数表) {……} #include iostream.h template class T T min(T a,T b) {return ab?a:b; } void main() { coutmin(3,5)endl; coutmin(8.5,5.6)endl; } 【例5.20】 定义一个数据类型T 使用模板函数时,模板中的类型参数T用实参的类型替换 分析以下几种模板函数: template class T T fun1(T a,int b) //可含有模板参数表中未给出的数据类型 {…… } ? template class T1,T2,T3 //模板中可带有多个参数 void fun1(T1 a,T2 b,T3 c) {…… } ? ? template class T void fun1(int a,int b) //必须至少有一个参数的类型为模板的类型参数 {…… } template class T //无法却东模板类型参数T的类型 void fun1(int a,int b) {T i,j; …… } ? 【例5.21】定义一个通用的函数,对n个数按递增排序。 #include iostream.h template class TEM void sort(TEM x[],int n) {int i,j,k; TEM w; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) if(x[k]x[j])k=j; if(i!=k) {w=x[i];x[i]=x[k];x[k]=w;} } } void main() {int i,a[6]={6,9,2,4,1,0}; double b[4]={5.5,8.0,3.3,0}; sort(a,10); sort(b,5); for(i=0;i10;i++) couta[i]endl; for(i=0;i5;i++) coutb[i]endl; } 注意w变量的定义 【例5.3】 求正整数m,n的最大公约数和最小公倍数 。 int gcd(int m,int n)//求最大公约数  { int r,t; if(mn){t=m;m=n;n=t;} while(r=m%n) { m=n;n=r; } return(n); } int sct(int m,int n)//求最小公倍数 { return( m*n/gcd(m,n) ); } void main() { int m,n; cinmn; coutgcd(m,n)endl; coutsct(m,n)endl; } 5.7 作用域与存储类别 #include iostream.h int digit(long n) { int k=0; while(n!=0) {n/=10; k+=1;} return k; } void main() { long x; cinx; cout digit(x)endl; } 从下面几个方面分析各变量 数据类型说明 存储类型说明 作用域(可见性): 在什么范围内可以访问 空间概念 生存期: 在什么时间存在

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档