C 知識點9 函式過載,預設實參,內聯函式

2021-10-06 13:45:04 字數 1424 閱讀 4985

函式過載

同一作用域內函式名相同但是形參列表不同的函式,為過載函式

下面兩個函式就是過載函式,編譯時會根據形參列表將這兩個函式編譯成不同的函式,在呼叫時傳入對應的引數就可以呼叫不同的過載函式

上述**定義的三個過載函式並且在主函式中呼叫過載函式overloadfunc,但是編譯器無法判斷到底要呼叫哪個過載函式(因為三個函式都可以接受a作為函式的實參),所以報函式歧義錯誤

預設實參

函式在宣告或定義時,對函式的形參進行值初始化,而在呼叫時,可以對該形參重新初始化,也可以忽略對該形參初始化

void defaultpara(int a,int b=10);

void defaultpara(string str=" ");

int main(int argc, char const *ar**)

void defaultpara(int a, int b)

{ cout<

呼叫函式時,如果想使用預設實參,就直接忽略對形參的初始化,否則,傳入新的實參即可

預設實參只能在函式宣告或者定義時進行新增,二者選其一,否則報錯

內聯函式

內聯函式主要修飾用在短小,實現簡單的函式,用inline修飾該函式

inline void defaultpara(string str=" ");

內聯函式在呼叫點直接將函式展開,減少函式呼叫的次數和開銷,從而讓程式速度更快,所有在類的內部定義實現的函式都是內聯函式

參考:《c++ primer》

C 知識點1(內聯函式)

1.內聯函式 在c 中我們通常定義以下函式來求兩個整數的最大值 複製 如下 int max int a,int b 為這麼乙個小的操作定義乙個函式的好處有 閱讀和理解函式 max 的呼叫,要比讀一條等價的條件表示式並解釋它的含義要容易得多 如果需要做任何修改,修改函式要比找出並修改每一處等價表示式容...

C 知識點 命名空間 預設引數 過載

1.什麼是c 2.c 與c語言的差異 3.c 中的命名空間例 namespace s1namespace s2int main 4.預設引數int add1 int x,int y,int z 沒有預設值 int add2 int x,int y,int z 3 半預設 int add3 int x...

C 基礎 (6章)知識點 內聯函式

c 從c中繼承了乙個重要特徵那就是效率,在c語言中我們經常把一些短並且執行頻繁的計算寫成巨集,而不是函式,這樣做的理由是為了執行效率,巨集可以避免函式呼叫的開銷,這些都由預處理來完成。但是在c 出現之後,使用預處理巨集會出現兩個問題 1 第乙個在c中也會出現,巨集看起來像乙個函式呼叫,但是會有隱藏一...