C++ 模糊重载函数引用
有人能帮我理解为什么这两个函数调用不明确:C++ 模糊重载函数引用,c++,C++,有人能帮我理解为什么这两个函数调用不明确: 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.
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);
}
intgreater(inti,intj){return(i>j?i:j);}
双大(双x,双y){返回(x>y?x:y);}
int main(){
int i=10,j=5;
双x=7.7,y=14.5;
根据您的用法,这两个函数是不明确的
由于以下(假定)行,您将收到一个错误:
这一行使函数不明确,因为std::greater
现在是候选函数
根据您的用法,这两个功能并不含糊
由于以下(假定)行,您将收到一个错误:
这一行使函数不明确,因为std::greater
现在是候选函数
顺便说一句,欢迎来到堆栈溢出。顺便说一句,欢迎来到堆栈溢出。
reference to ‘greater’ is ambiguous cout << greater(i, j);
using namespace std;