2.2函数答案.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 6.2.2 参数个数不同的重载函数 #include iostream.h int min(int a, int b); int min(int a, int b, int c); int min(int a, int b, int c, int d); void main( ) { cout min(13,5,4,9) endl; cout min(-2,8,0); } int min(int a, int b) { return ab ? a : b; } 调用 min(int,int,int,int ) 调用 min(int,int,int ) * int min(int a, int b, int c) { int t = min(a,b); return min(t,c); } int min(int a, int b, int c, int d) { int t1 = min(a,b); int t2 = min(c,d); return min(t1,t2); } 6.2.3 参数次序不同的重载函数 char * get(char *s, char ch); char * get(char ch, char *s); // 其实是参数类型不同的一种特例 6.3 重载函数的“二义性”错误 int print(int); double print(int); void main() { int a=10, b=20; print(a); // 二义性 print(b); // 二义性 } 返回值类型不同,参数相同 调用哪个print??? 6.3 重载函数的“二义性”错误(续) int print(const int ); int print(int ); void main() { int a=10, b=20; print(a); // 二义性 print(b); // 二义性 } 仅用了const或引用造成的参数类型不同 调用哪个print??? 6.3 重载函数的“二义性”错误(续) 使用了修饰符造成的的参数类型不同的函数,可能引起二义: void print(unsigned int ); void print(int); void main(){ print(1l); // 二义性 print(1u) ; // OK,无二义 } 1l 既可转换成unsigned int,又可转换成int。 调用哪个print??? 6.3 重载函数的“二义性”错误(续) 缺省参数引起的二义性: void print(int a , int b=1); void print(int a); void main(){ print(1); } 调用哪个print??? 到底是一个参数的print,还是取缺省值b为1的print. 6.4 编译器如何处理重载函数? C的函数编译后通常为 _cdecl_funcname(); 如:int max(int,int) 编译后为: int _cdecl_max()(0040260); 为了支持重载,C++的函数编译后通常为 _cppdecl_funcname_parameter_...(); 如:int max(int,int); int max(int,int,int) 编译后为: int _cppdecl_max_int_int()(0080330) ; int _cppdecl_max_int_int_int()(0100280) ; * 关于extern “C” 声明: 强制C++编译器按C的函数命名规则去连接相应的目标代码。 call _cdecl_max()(0040260); extern “c” max(a,b); 编译为: 作业: 例题:例2.8~例2.14 习题:5、6、7、8 * * * * * * * * * * * * * * * * * * * * * * 作业: P: 36 1 2 3 4 3 作用域 变量的可见范围 3.1 作用域 作用域:标识符的可见范围 作用域的种类: 程序级 (全局级

文档评论(0)

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

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

1亿VIP精品文档

相关文档