max的问题
#include<iostream>using namespace std;
template <class T>
T max(T x,T y)
{
return (x>y)?x:y;
}
int main( )
{
int i;
i=max(2,30);
cout<<i;
return 0;
}
上面的程序编译时出错,是为什么啊,把它改为一下的任意一种又都可以:1、改函数名max;2、T max(T x,T y)
改为T max(T &x,T &y);3去掉using namespace std;改cout<<i;为std::cout<<i;
为什么呢?c++里有定义max函数吗?