內聯成員函式與過載成員函式

2021-07-04 03:23:09 字數 937 閱讀 3898

內聯函式機制是為了減少函式呼叫的開銷,編譯器處理對內聯函式的呼叫語句時,是將整個函式的**插入到呼叫語句處。

兩種格式:

1.inline+成員函式

2.整個函式體出現在類定義內部

例如:

class b //第二種格式

}void b::func1{} //定義時不用加inline

乙個或多個函式,名字相同,但是引數個數或引數型別不相同,就叫函式的過載。編譯器根據呼叫語句中的實參個數和型別判斷應該呼叫哪個函式。

如果兩個函式的名字和引數都相同,只是函式返回值型別不同,這不叫函式過載,叫重複定義。

例如:

#include

using

namespace

std;

class location

int valuex()

};

定義函式時可以讓最右邊連續若干個引數有預設值。

例如:

void func(int x1,int x2=2,int x3=3){}

func(10); //等價於func(10,2,3)

func(10,8); //等價於func(10,8,3)

func(10, ,8); //不行,只能最右邊連續若干個引數預設

使用預設引數時要注意避免有函式過載時的二義性。

例如:

#include

using

namespace

std;

class location

int valuex()

};location a;

a.valuex();//錯誤,編譯器無法確定呼叫哪個valuex

內聯成員函式

把成員函式的 放如類定義中。這種方式定義的函式就叫內聯成員函式。程式使用內聯成員函式的方式可以與類外部定義的成員函式的使用方式完全相同。但是,內聯函式和外聯函式之間還是有一點區別的 定義乙個內聯函式時,編譯器會把內聯函式的 替換到程式中。使用非內聯函式時,就不會這樣做。但是我們不能讓所有的函式都內聯...

c 內聯成員函式

內聯成員函式 類中的成員函式分為一般成員函式和內聯成員函式。把成員函式的 放入類宣告中,這種方式定義的類成員函式就叫內聯成員函式 隱式定義 程式使用內聯成員函式的方式與一般的成員函式的呼叫方式一樣。內聯函式和外聯函式之間的區別在於 定義乙個內聯函式時,編譯器會把內聯函式的 替換到程式中 這樣 效率要...

c ,內聯成員函式

內聯成員函式 有兩程方式實現內聯成員函式 1 在聲名成員函式的同時定義成員函式體 2 宣告成員函式時,在最前面加上inline關鍵字 在定義成員函式時也在最前面加上inline關鍵字 建議inline函式在標頭檔案中宣告,以便被不同檔案使用。同c 注意 內聯函式中如果出現條件或迴圈語句,則不會被真正...