繫結與虛函式

2021-06-27 07:36:18 字數 771 閱讀 3966

繫結

程式自身彼此關聯的過程,確定程式中的操作呼叫與執行該操作的**間的關係。

靜態繫結

繫結過程出現在編譯階段,用物件名或者類名來限定要呼叫的函式。

動態繫結

繫結過程工作在程式執行時執行,在程式執行時才確定將要呼叫的函式。

虛函式

虛函式是動態繫結的基礎。是非靜態的成員函式。

在類的宣告中,在函式原型之前寫virtual。

virtual只用來說明類宣告中的原型,不能用在函式實現時。

具有繼承性,基類中宣告了虛函式,派生類中無論是否說明,

同原型函式都自動為虛函式。

本   質    :

不是過載宣告而是覆蓋。

呼叫方式:

通過基類指標或引用,執行時會根據指標指向的物件的類

決定呼叫哪個函式。

虛函式與動態繫結

在定義基類時,我們希望基類中的有些函式可以在派生類中重新定義。比如,我們定義了基類記錄的書,可以求出買了多少書花了多少錢 而在派生類中,我們定義的是打折的書,還是要計算買了多少書花了多少錢。這時,就需要重新定義計算錢數的函式了。注意,這裡的重新定義,與之前講過的函式過載或者操作符過載不同 後面兩類,...

c 中虛函式與功能晚繫結

再說這個問題之前,我們先來看個程式 include using namespace std class bird class bigbird public bird class smallbird public bird 編譯時就已經將diaoyongshow 中p與bird類的show 繫結到一起...

虛函式 多重繼承 動態繫結

class a class b public a class c public b 假設我們定義乙個類b的物件。由於bobject是類b的乙個物件,故bobject包含乙個虛表指標,指向類b的虛表。int main int main int main 程式在執行p vfunc1 時,會發現p是個指標...