c++的问题,请牛人解释一下,谢了

[复制链接]
查看11 | 回复3 | 2012-2-15 22:13:45 | 显示全部楼层 |阅读模式
自然程序1是ok的, 能够找到对应的重载函数ff(double),ok但是程序2,f(3.14) 编译器把3.14 当做float,最多提升成double没有ff(double),long double和double是不同的类型,编译器报错程序3一样道理,ff('a'), 'a',默认是char类型,unsigned char 和char不同类型,找不到ff(char)重载函数,编译器报错...
回复

使用道具 举报

千问 | 2012-2-15 22:13:45 | 显示全部楼层
是主函数中引用的问题,改为变量就可以通过了,如:voidff(double ival){
cout << "char" << endl; }void ff(unsigned charsival){
cout << "unsigned char" << endl;}int main(){unsign...
回复

使用道具 举报

千问 | 2012-2-15 22:13:45 | 显示全部楼层
第一个有匹配的 不做解释了第二个 VC++编译器 不认识long double所以错误第三个 char比较特殊,如果匹配不到会提升至int,如果还匹配不到则继续提升。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行