ambiguous call to overloaded function

ambiguous call to overloaded function

解释:系统无法确定你调用的是哪个函数

可能的情况:

1.你写了几个相同名字的函数:

  如:

int swap(int a,int b)
{
//...
return 0;
}
double swap(int a,int b)
{
//...
return 0;
}

2.你写了函数声明,但是你的声明类型和你的函数体参数不一样:

如:

int swap(int,int *);//函数声明
int swap(int a,int b)//函数体
{
return 1;
}

ps:今天写哈弗曼编码的时候,由于函数声明和原函数体参数不一样,老是出现这个问题,看了好久才看到是声明写错了。

HuffmanCode HuffmanCoding(HuffmanTree HT,HuffmanCode HC,int *w,int n)//函数声明


HuffmanCode HuffmanCoding(HuffmanTree &HT,HuffmanCode HC,int *w,int n)//函数体
{ 
   //...
   return HC;
}     
就是因为声明位置少了一个&引用。造成系统调用不明确。

你可能感兴趣的:(ambiguous call to overloaded function)