社区
C语言
帖子详情
关于函数重载
Keanu_Rocky
2002-06-16 09:22:32
#include <iostream.h>
void output ( float f)
{
cout << "output float" << f << endl;
}
void output ( int i)
{
cout << "output int" << i << endl;
}
void main(void)
{
output(0.5);
}
编译程序应能识别0.5为浮点型吧?为什么在这里还是会引发二义性?
...全文
31
6
打赏
收藏
关于函数重载
#include void output ( float f) { cout << "output float" << f << endl; } void output ( int i) { cout << "output int" << i << endl; } void main(void) { output(0.5); } 编译程序应能识别0.5为浮点型吧?为什么在这里还是会引发二义性?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
masterdog
2002-06-16
打赏
举报
回复
匹配规则:(按照以下三条逐次匹配)
1. 完全匹配
2. 内部类型转换
3. 用户类型转换
对于int形参,5是严格匹配,所以会选择int。
对于你这个例子,要避免二义性,在函数调用时候指明转换类型:
output(float(0.5));
llin_9461
2002-06-16
打赏
举报
回复
你最好是加上强制转换否则会出错,我上次也是出了同样的错,就是像你一样,加上后便可正确重载
ttzzgg_80713
2002-06-16
打赏
举报
回复
编译器可以作隐式的转换。加个(float)就可以了
Keanu_Rocky
2002-06-16
打赏
举报
回复
to xuying():
编译器是否把所有类似如 0.5 的常量当作 double 处理?确定吗?
那么编译器把 5 当作 int 还是 long int 来处理呢?
xuying
2002-06-16
打赏
举报
回复
编译器将0.5默认为double型,所以认为有2个可以转换的类型float和int,
因此出错。
改成:
output((float)0.5);
就可以了。
晨星
2002-06-16
打赏
举报
回复
int和float之间可以自动转换,所以两个函数都符合要求。
华为 C++ 培训资料
华为 C++ 培训资料 部分内容 第一章 类、接口 ………………………………………………………………… 7 1.1 Handle-Body与接口、抽象接口 …………………………………………7 1.2 多继承、与菱形缺陷、this跳转等……………………… ……………… 13 1.3 C++多态的两种多态形式和区别…………………………………………… 18 第二章
重载
………………………………………………………………………18 2.1
函数
重载
………………………………………………………………………19 2.2 运算符
重载
………………………………………………………………… 20 第三章 模板 ………………………………………………………………………29 3.1 模块
函数
……………………………………………………………………29 3.2 模块类……………………………………………………………………………31 3.3 STL标准模板库…………………………………………………………………34 附录:参考资料 ……………………………………………………………………… 39
什么是
函数
重载
?
什么是
重载
?
重载
指的是
函数
具有不同的参数列表,而
函数
名相同的
函数
。
重载
要求参数列表个数不同,或者参数的类型不同,参数的顺序不同。都可以实现
重载
,但是仅仅是
函数
的返回值不同是没办法
重载
的。编译器会根据传递的实参来决定选用最合适的定义。 C++
函数
重载
函数
重载
指的是一个作用域内的几个
函数
名字相同但是形参列表不同。 #include <iostream> #include <st...
微服务系列第八季-Java中重写、
重载
及枚举
微服务应用是分布式开发的主要手段,它很好的解决了高并发等电商平台的问题。微服务系列课程是以Java语言为基础,以SpringCloud+SpringBoot为核心,结合Spring、SpringMVC及MyBatis,通过游戏案例、电商案例,以极简的方式,带领入门的朋友们快速上手微服务开发。全部案例源码分享给学习的朋友,案例采用敏捷开发管理模式,让朋友们在每一个阶段,有着游戏过关一样的学习体验。 第六季主要是给大家介绍一下Java中重写、
重载
及枚举。包括:Java中重写的概念、重写中super的使用、方法的重写规则、方法的
重载
概念、方法重写与
重载
的区别、枚举的概念、内部类中使用枚举、迭代枚举元素、在switch中使用枚举类、枚举的常用方法。
C++ 鉴别
函数
重载
本篇博文将梳理一下C++有关
函数
重载
的疑难点,参考书籍C++ Primer第五版 第6章 第4节 《
函数
重载
》. 1.
函数
重载
的定义 1.如果同一作用域内的几个
函数
名字相同但形参列表不同,我们称之为
重载
函数
. 2.总结
函数
重载
的3个结论: (1)同一作用域; (2)
函数
名字相同,但形参列表不同; (3)不关心
函数
返回值是否相同; C++ Primer P207 名字查找发生在类型检查之前。 牢记这一点对理解C++的作用域有很大帮助。 2. 关于
函数
重载
的剖析 2.1 同一作用域 -------
C语言
69,370
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章