函數的重載:語義和功能相似的函數用相同的名字表示,編譯器根據不同的參數為不同的函數產生不同的內部標識符 C++函數調用C函數:extern "C"{ } !!并不是函數名相同就是重載,全局函數和類成員函數就不是重載,作用域不同 防止隱式類型轉換而導致重載函數調用的二義性 成員函數的重載、覆蓋和隱藏 重載的特征overload: (1)具有相同的范圍(在同一個類中) (2)函數名字相同 (3)參數不同 (4)virtual關鍵字可有可無 覆蓋的特性overriding: 派生類覆蓋基類的函數: (1)范圍不同(不在同一個類中) (2)函數名字相同 (3)參數相同 (4)基類必須帶virtual關鍵字 隱藏規則: (1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual 關鍵字,基類的函數將被隱藏(注意別與重載混淆)。 (2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有virtual 關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)。 參數的缺省 只能出現在函數聲明中 關鍵字inline 必須與函數定義體放在一起才能使函數成為內聯 定義在類聲明之中的成員函數將自動地成為內聯函數 (1)如果函數體內的代碼比較長,使用內聯將導致內存消耗代價較高。 (2)如果函數體內出現循環,那么執行函數體內代碼的時間要比函數調用的開銷大