C++程序设计 任化敏 chapter06-函数新.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例【6-14】参数个数不同的重载函数举例。 #includeiostream using namespace std; ? void date(int,int); void date(int,int,int); ? int main() { int year,month,day; cout请输入年份:; cinyear; cout请输入月份:; cinmonth; cout请输入日:; cinday; cout您出生的年月是:; date(year,month); cout您出生的具体日期是:; date(year,month,day); return 0; } void date(int a,int b) { couta年b月endl; } void date(int a,int b,int c) { couta年b月c日endl; } 在C++程序中,当一个函数名在某个域中被多次声明时,编译器按照下面的规则判断这个函数是否是重载函数。 如果同名函数的参数列表中参数的个数或类型不同,那么这些同名函数是重载函数。 如果同名函数仅返回值类型不同,而参数类型和个数都相同,那么后面的函数被看作是第一个函数的错误重复声明。 如果在同名函数的参数列表中,只有缺省实参不同,那么后面的函数被看作是第一个函数的重复声明。 typedef在程序中被用作类型标识符,定义时使用用关键字typedef,后面是数据类型和标识符。使用typedef并没有引入一个新的类型,只是为现有类型起一个别名。所以如果同名函数中其中一个函数的参数列表中使用了typedef,而其他函数的参数列表中使用了与typedef相对应的类型,那么这些同名函数不是重载函数。 在线教务辅导网: 更多课程配套课件资源请访问在线教务辅导网 既然指针作为函数参数和引用作为函数参数都是地址传递,它们都可以改变实参的值,那么它们二者有什么不同呢? 引用是一个变量的别名,一旦初始化后它就与初始化它的变量绑定在一起。 而指针却可以指向多个对象也可以不指向任何对象。 所以如果一个参数在函数中可能要指向不同的对象或者不指向任何对象时,就必须使用指针形参了。 6.2.2 引用作函数参数和返回值 引用既可以做函数的参数,也可以作为函数的返回值。这时函数返回的不是值而是某个变量或对象的引用,所以return后面应该是变量名。而这个变量不能是函数中的局部变量,因为函数在调用结束后会释放掉局部变量,所以被引用的变量或对象应该是全局的或静态的。 例【6-5】编写函数返回两个班级平均分中较高分的引用。 #include iostream using namespace std; ? int max(int a,int b); ? int main() { int ave,ave1,ave2; cout请输入两个班级的平均分:; cinave1ave2; ave=max(ave1,ave2); cout较高的分数为:aveendl; return 0; } int max(int y1,int y2) { static int y; //static是定义静态局部变量使用的关键字 y=y1y2?y1:y2; return y; } 6.2.3 数组形参 数组是占有连续内存地址的相同类型的数据项序列。使用数组元素作为函数实参与使用普通变量作实参是一样的,都是值传递。如果函数要对批量的数据进行处理,使用数组元素作为参数是不方便的,这时可以使用数组作为函数的形参。 数组名代表这个数组的起始地址,在使用数组名时实际上使用的是指向该数组第一个元素的指针。 将数组作为参数传递给函数时,实际上传送的就是这个指针,而不是数组的副本。与指针形参相同,在被调函数内对数组参数的改变将应用到数组实参上。 例【6-6】利用数组形参打印课程表。 #include iostream #include string using namespace std; ? //声明一个函数,输入课程表 void GetCurriculumSchedule(string courese[][7],int m); //声明一个函数,输出课程表 void DisplayCurriculumSchedule(string courese[][7],int m,string week[],int n); ? int main() { string week[7]={Mon,Tue,Wed,Thu,Fri,Sat,Sum}; string schedule [6][7]; GetCurriculumSchedule(schedule,6); //函数调用,数组名做实参 DisplayCurriculu

文档评论(0)

开心农场 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档