動態繫結和靜態繫結的簡單理解

2021-06-28 00:05:15 字數 427 閱讀 4472

最近看《effective objectvec》,講到"動態繫結"和"靜態繫結",覺得挺好,記錄下來。

下面是一段靜態繫結的**,在編譯期間就決定了在執行時所呼叫的函式。

c#import void printhello()

void printgoodbye()

void dosth(int type)

else

}

同樣的功能,用"動態繫結"來實現,要在執行時才確定呼叫的函式。

#import void printhello()

void printgoodbye()

void dosth(int type)

else

func();

}

動態繫結和靜態繫結

繫結 binding 是指將變數和函式名轉換成位址的過程 絕大部分的順序執行邏輯中函式呼叫或某個確定資料型別的class型別的物件對成員呼叫都屬於靜態繫結 include using namespace std class employee class teamper public employee...

C 動態繫結和靜態繫結

學習大佬的總結 為了支援c 的多型性,才用了動態繫結和靜態繫結。理解他們的區別有助於更好的理解多型性,以及在程式設計的過程中避免犯錯誤。需要理解四個名詞 1 物件的靜態型別 物件在宣告時採用的型別。是在編譯期確定的。2 物件的動態型別 目前所指物件的型別。是在執行期決定的。物件的動態型別可以更改,但...

c 動態繫結和靜態繫結

為了支援c 的多型性,才用了動態繫結和靜態繫結。1 物件的靜態型別 物件在宣告時採用的型別。是在編譯期確定的。2 物件的動態型別 目前所指物件的宣告。在執行期決定。物件的動態型別可以更改,但是靜態型別無法更改。關於物件的靜態型別和動態型別,看乙個示例 class a class b public a...