我需要一些幫助來理解編譯器如何選擇重載的C++函數。如何選擇適用於C++的重載函數?
當給一個函數:
type func(type1 x, type2 y);
type func(type3 x, type2 y);
編譯器如何確定哪些功能選擇?
我知道所選擇的功能是根據其適用性而定的,但是如何知道哪個功能可以成功使用。
例如:
鑑於這些函數重載函數:
char* average(int i, float f, double d);
double average(double d, float f, int i);
double fabs(double d);
考慮到這些變量:
int i1, i2, i3;
float f1, f2, f3;
什麼數據類型是這些函數調用的返回值?爲什麼?
average(i1, i2, i3);
average(f1, f2, f3);
fabs(average(f1,f2,f3));
好了,你可以通過只運行代碼... –
找到答案你的具體實例和對於長的答案,你可以看看標準的那一段與類型轉換和促銷活動和重載決議涉及。作爲C++的新手,我不推薦它。 – chris
就你而言,編譯器根據名稱單獨選擇函數,因爲你的函數具有不同的名稱。 – dasblinkenlight