gameloft筆試的幾道經典原題 軟件測試
有幾道題還是比較經典。
#include
using namespace std;
void func(float f)
{
printf("%f\n",f);
}
void func(int i)
{
printf("%d\n",i);
}
int main(int argc,char *argv[])
{
func(1.2);
return 0;
}
以上代碼在VC中編譯有一條錯誤ambiguous call to overloaded function,問題在于函數重載存在二義性。
解決方法:
(1)、將void func(float f)改為void func(double f)
(2)、將void func(float f)加上一個未定義參數,如void func(float f,int),在main函數中如此調用:
func(1.2,0);
以上兩種方法均能得到正確結果。
原文轉自:http://www.anti-gravitydesign.com