有人可以帮助我理解为什么这两个函数调用是不明确的:
int greater(int i, int j) { return ( i > j ? i : j); }
double greater(double x, double y) { return ( x > y ? x : y); }
int main(){
int i = 10, j = 5;
double x = 7.7, y = 14.5;
cout << greater(i, j);
cout << greater(x, y);
}
g ++的确切错误是:
reference to ‘greater’ is ambiguous cout << greater(i, j);
这是Pohl教授关于C程序员C ++的优秀书籍。我正在使用g ++(GCC)4.9.2进行编译。 谢谢, Mainecat
答案 0 :(得分:8)
根据您的使用情况,这两个功能不不明确。
由于这个(假定的)行,你得到一个错误:
using namespace std;
此行使您的函数不明确,因为std::greater
现在是候选。