社区
C++ 语言
帖子详情
重载函数如何避免二义性
耶鲁於
2013-06-19 04:56:09
大家交流一些经验、技巧
...全文
254
2
打赏
收藏
重载函数如何避免二义性
大家交流一些经验、技巧
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rocktyt
2013-06-20
打赏
举报
回复
巧妙利用c++重载机制的优先级 普通函数 特化模板函数 模板函数(模板参数越少优先级越高) 不定参数函数 搜索sifnae
漫步者、
2013-06-20
打赏
举报
回复
采用模板么?
重载
函数
的
二义性
1.
函数
名称相同 2.参数列表不同 3.与返回值无关 编译器如何匹配要使用哪个
函数
1.选定候选
函数
集:被调用
函数
名相同;声明在调用点可见 2.选定可行
函数
集:候选
函数
的参数列表数量相同、各个参数类型相同或可以进行类型转换 3.选出最佳匹配
函数
:找出最合适的
重载
函数
函数
重载
的
二义性
是指在编译过程中无法找出最匹配的
函数
,或者说编译器在
函数
匹配之后还是有很多
函数
满足要求,无法确定执行哪一个而引发的错误 例一:int get(); 和 int get(int a = 0) 这类
函数
中,不给参数和有默.
在C++的
函数
重载
中出现
二义性
问题
(Function Overloading)是指在同一个作用域内,允许声明多个
函数
名相同但参数列表不同的
函数
。然而,当
函数
重载
存在
二义性
问题时,编译器无法确定调用哪个
重载
函数
,从而导致编译错误。在编写代码时,应该
避免
函数
重载
的
二义性
问题,确保
重载
函数
的参数类型在调用时能够清晰地区分,以减少不必要的歧义。当然,有时对于
函数
输入类型的设计,需要考虑用户使用的方便性,可以适当设计不同的
函数
名称或采用其他方法来
避免
出现
二义性
。// 调用int参数版本。
课外闲谈10.
函数
重载
的
二义性
一,
函数
重载
应
避免
默认参数 void test(int a,int b = 10) { cout << "1" << endl; } void test(int a) { cout << "2" << endl; } int main() { int a = 1; test(a);//程序会报错,因为默认参数的问题,使
函数
重载
出现
二义性
。 } 二,形参个数一致,仅仅是形参名或者返回值不同 三,
重载
函数
形参在同位置分别类型为传值或者传引用
函数
重载
以及
二义性
关于
函数
重载
及其
二义性
C++
重载
函数
带有默认参数时,设计
函数
需要注意什么问题,以
避免
二义性
?
C++
重载
函数
带有默认参数时产生的
二义性
问题和设计
函数
需要注意的一些地方 1、当
重载
函数
带有默认参数时,调用该
函数
,调用该
函数
会产生
二义性
。 如:编写一个程序定义
重载
函数
,使其中一个
函数
带有默认参数。 编译器在运行程序时不知道该调用哪一个
函数
,故出现错误。 2、当在一个程序的
函数
中使用默认参数时,默认参数的值不能在
函数
的定义和声明中同时给定,只能在声明中给定。 如:对上述程序做如下修改: 在同...
C++ 语言
65,178
社区成员
250,527
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章