#include
using namespace std;
template
T max(T x, T y)
{
return (x > y)? x : y;
}
int main()
{
cout << max(3, 7) << std::endl;
cout << max(3.0, 7.0) << std::endl;
cout << max(3, 7.0) << std::endl;
return 0;
}
(一种)
7
7.0
7.0
(B)所有cout语句中的编译器错误,因为未指定数据类型。
(C)最后一个cout语句中的编译器错误,因为对max的调用不明确。
(D)以上都不是答案: (C)
说明:对max函数的第一次和第二次调用是有效的调用,因为传递的两个参数都具有相同的数据类型(即,分别为int和float)。但是对max函数的第三次调用具有不同数据类型的参数,因此由于对max的调用不明确,因此它将在最后一个cout语句中生成Compiler Error。因此,选项C是正确的
这个问题的测验