問題描述
碰到以下內容,問題的解決方式
Cannot overload functions distinguished by return type alone
問題來源
我寫範例程式碰到的問題
解決方法
簡單來說是 C++ function 使用了 overload,
而這個 overload 造成了 compiler 混淆的行為,
這樣講我也覺得很不好懂,不如我們直接來看例子XDD
範例
int foo(float a);
float foo(float a);
現在問題來了,請問以下的 function call 會使用上面的哪一個呢?
float a = 1.0;
foo(a);
很難對不對,實際上就是沒有答案XDDD,
因為 complier 就是不知道要用哪一個。
解決範例
解決方法:就不要 overload 了吧…
另外也建議可以在 function naming 多下功夫
- 例如:
int float_to_int(float a);
float float_to_float(float a);