- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 3 使用说明 重载函数至少在参数个数、参数类型或参数顺序上有所不同。 不能用typedef定义的类型名来区分重载函数声明中的参数。 让重载函数执行不同的功能,是不好的编程习惯。 四、默认参数的函数 * 1.默认参数的目的 缺省实参是一种虽然并不普遍、但在多数情况下仍然适用的实参值。缺省实参使程序员从函数接口的每个小细节中解脱出来。 调用包含缺省实参的函数时,可以(也可以不)为该参数提供实参。如果提供了实参,则它将覆盖缺省的实参值。否则,函数将使用缺省实参值。例如: char *screenInit( int height = 24, int width = 80, char background = ); char *cursor; // 等价于 screenInit(24,80, ) cursor = screenInit(); // 等价于 screenInit(66, 88, ) cursor = screenInit(66); // 等价于 screenInit(66, 256, ) cursor = screenInit(66, 256); cursor = screenInit(66, 256, #); * 2 默认参数的声明 当又有声明又有定义时,定义中不允许使用默认参数。即只有当函数只有定义时,默认参数才可出现在函数定义中,但缺省实参只能用在包含该函数定义的文件的函数调用中。 函数声明可以为全部或部分参数指定缺省实参。在左边参数的任何缺省实参被提供之前,最右边未初始化参数必须被提供缺省实参。例如:// 错误: 在指定height 之前, width 必须有一个缺省实参char *screenInit( int height = 24, int width, char background = ); 一个参数只能在一个文件中被指定一次缺省实参。例如:// ff.hint ff( int = 0 );// ff.C#include ff.h“int ff( int i = 0 ) { ... } // error 缺省实参不一定必须是常量表达式可以使用任意表达式(全局变量、全局常量或函数),但不能是局部变量。例如:int aDefault(); int bDefault( int ); int cDefault( double = 7.8 ); int glob; int ff( int a = aDefault(),int b = bDefault( glob ),int c = cDefault() ); * 3 默认参数使用 函数调用的实参按位置解析,缺省实参只能用来替换函数调用缺少的尾部实参。char *screenInit( int height = 24, int width = 80, char background = );screenInit(); // screenInit(24,80, ) screenInit(66); // screenInit(66, 88, )screenInit( , , ‘#’); //errorscreenInit( 24, , ‘#’); //error 五、省略号 * 主讲教师:刘红俊 * 有时候我们无法列出传递给函数的所有实参的类型和数目。在这种情况下,我们可以用省略号(...)指定函数参数表。 省略号挂起类型检查机制。它们的出现告知编译器,当函数被调用时,可以有0 个或多个实参,而实参的类型未知。省略号有下列两种形式: void foo( parm_list, ... ); void foo( ... ) 第一种形式为特定数目的函数参数提供了声明。在这种情况下,当函数被调用时,对于与显式声明的参数相对应的实参进行类型检查,而对于与省略号对应的实参则挂起类型检查。在第一种形式中,参数声明后面的逗号是可选的。 * 标准C 库输出函数printf()就是一个必须使用省略号的例子,printf()的第一个参数总是C风格字符串。 int printf( const char* ... ); 大多数带有省略号的函数都利用显式声明的参数中的一些信息,来获取函数调用中提供的其他可选实参的类型和数目。因此带有省略号的第一种形式的函数声明最常使用。 例如: #include stdio.h #include stdarg.h /* calculate sum of a 0 terminated list */ void sum(char *msg, ...)
您可能关注的文档
最近下载
- 医疗器械 质量手册.doc VIP
- SYB第八步(3)-制定销售和成本计划.ppt VIP
- 2025广东惠州市生态环境局博罗分局和博罗县污染防治攻坚战总指挥部办公室招聘编外人员38人考试备考试题及答案解析.docx VIP
- 2024年浙江省嵊泗县人民医院公开招聘护理工作人员试题带答案详解.docx VIP
- 常用急救药品ppt课件.pptx VIP
- 人教版八年级下册数学期末测试题汇总.doc VIP
- 鄂尔多斯市天安公交集团招聘笔试真题2024.docx VIP
- 鄂尔多斯市天安公交集团招聘笔试真题2024.docx VIP
- 泉州公交集团招聘考试真题2024.docx VIP
- 高中英语语法知识点总结.pdf VIP
文档评论(0)