读书人

一个编译时多态的例子:为什么调用的是

发布时间: 2012-04-14 17:14:21 作者: rapoo

一个编译时多态的例子:为什么调用的是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)

读书人网 >C++

热点推荐