书上的一道题,但就是编译不了。。。

xrayshow xrayshow 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
// OOP 第八章:模板 例题8.2
//
//

template <class T>
T max( T x, T y )
{
return( x>y )?(x):(y);
}

double max( double, double ); //重载模板函数
//int max( int, int );

#include <iostream>

using namespace std;

void main()
{
int x=3, y=4;
long l=5;
double a=1.1, b=3.4;

cout << max( x, y ) << endl; //调用模板函数 int max( int, int )
cout << max( a, b ) << endl; //调用模板函数 double max( double, double )
cout << max( l, a ) << endl; //调用重载模板函数 double max( double, double )
cout << max( a, l ) << endl; //调用重载模板函数 double max( double, double )
cout << max( x, l ) << endl; //调用重载模板函数 double max( double, double )
}

如上。。 vc6 提示:'T __cdecl max(T,T)' : template parameter 'T' is ambiguous could be 'double' or 'long'
.
.
.

后3个 max() 语句不是重载了吗? 为什么还提示 T 不明确是double还是long呢?
...全文
评论 5
收藏 已收藏
分享
返回顶部
xrayshow
C++ 语言 65,214 成员 250,514 内容