重载函数的二义性

更新时间:2023-12-11 08:29:33 阅读: 评论:0

2023年12月11日发(作者:德治与法治的关系)

-

重载函数的二义性

重载函数的二义性

重载函数的定义

1.函数名称相同

2.参数列表不同

3.与返回值无关

编译器是如何匹配要使用哪个函数的

1.选定候选函数集:被调用函数名相同;声明在调用点可见

2.选定可行函数集:候选函数的参数列表数量相同、各个参数类型相同或可以进行类型转换

3.选出最佳匹配函数:找出最合适的重载函数

函数重载的二义性是指在编译过程中无法找出最匹配的函数,或者说编译器在函数匹配之后还是有很多函数满足要求,无法确定执行哪一个而引发的错误

例一:int get(); 和 int get(int a = 0) 这类函数中,不给参数和有默认参数会造成歧义

例二:int get(int m) 和 float get(float m) 这类函数中,参数隐式转换(double既可以隐式转换为long,也可以是int),无法确定哪一个更加匹配

int get(int m) 和 int get(int& m) 这类函数中,传值和引用都可以完成调用,只不过传值有拷贝开销,而引用没有拷贝开销

-

重载函数的二义性

本文发布于:2023-12-11 08:29:33,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/1702254573118031.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:重载函数的二义性.doc

本文 PDF 下载地址:重载函数的二义性.pdf

下一篇:返回列表
标签:函数   参数   匹配   重载   引用   无法
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|