最近看《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...