首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个编译时多态的例子:为什么调用的是double的那个函数,该如何解决

2012-04-14 
一个编译时多态的例子:为什么调用的是double的那个函数如题:#include iostream.hcharmax(charx,chary){r

一个编译时多态的例子:为什么调用的是double的那个函数
如题:

#include <iostream.h>
char           max   (   char   x,   char   y   )   {   return   x> y?x:y;   }
int                 max   (   int   x,   int   y   )               {   return   x> y?x:y;   }
float           max   (   float   x,   float   y   )   {return   x> y?x:y;   }
double     max   (double   x,   double   y   )   {return   x> y?x:y;   }
void   main()
{
cout < <max( 'd ', 's ') < <endl;
cout < <max(28,168) < <endl;
cout < <max(3.14,2.718) < <endl;
}

语句cout < <max(3.14,2.718) < <endl;为什么调用的是double     max   (double   x,   double   y   )函数?

[解决办法]
3.14,2.718浮点常量默认是double的
[解决办法]
up LS
[解决办法]
要想调用float版的可以这样写:
max((float)3.14,(float)2.718)
或者是
max(3.14f,2.718f)

热点排行