C 函式過載易錯點

2021-06-22 05:25:11 字數 432 閱讀 2004

1.函式過載跟返回類型別無關。

如果定義一下兩個函式:

int func();

void func();

如果int a = func();那麼編譯器知道呼叫第乙個函式。

但是c++允許直接使用函式而不需要返回值。  

func();這個時候就不知道呼叫哪個函式,編譯報錯。

2.二義性。 特別是double型別的隱式轉換的二義性。

int max(int a, int b);

int max(int a, float b);

如果這時候呼叫函式  max(1, 0.4);

函式預設0.4為double型,此時不知道應該向int還是像float轉換,所以造成二義性。

如果又定義了乙個函式  int max(int a, double b); 那麼max(1,0.4)會呼叫它。

C語言 strlen 函式易錯點

strlen函式解析 include include includeint main void int len2 strlen c2 printf len2 d n len2 error.len2 9 char c3 int len3 strlen c3 printf len3 d n len3 l...

C語言 strlen 函式易錯點

code class cpp strlen函式解析 include include include int main void int len2 strlen c2 printf len2 d n len2 error.len2 9 char c3 int len3 strlen c3 printf...

C 建構函式 複製函式易錯點

c 中複製函式在三種情況下自動呼叫 用乙個物件初始化另乙個物件 函式的引數為物件 函式的返回值為物件 下面用幾個 片段解釋複製函式的呼叫中的一些常見 坑 一 預設複製函式的自動呼叫 include using namespace std class point void showcoordinate...