虛函式 簡單介紹

2021-04-23 10:14:10 字數 421 閱讀 6190

當類中有虛函式的時候,編譯器會為類插入乙個我們看不見的資料並建立乙個表。這個表就是虛函式表(vtbl),那個我們看不見的資料就是指向虛函式表的指標——虛表指標(vptr)。虛函式表就是為了儲存類中的虛函式的位址。我們可以把虛函式表理解成乙個陣列,陣列中的每個元素存放的就是類中虛函式的位址。當呼叫虛函式的時候,程式不是像普通函式那樣直接跳到函式的**處,而是先取出vptr即得到虛函式表的位址,根據這個來到虛函式表裡,從這個表裡取出該函式的位址,最後呼叫該函式。所以只要不同類的vptr不同,他對應的vtbl就不同,不同的vtbl裝著對應類的虛函式位址,這樣虛函式就可以完成它的任務了。

注意:1、每個類都對應各自的虛函式表。虛函式表是編譯器生成的。

2、一般編譯器將虛函式指標的位置放在類物件的開始位置。

3、子類繼承父類,也會做成自己的虛函式表。即:子類和父類的虛函式指標是不同的。

C 的虛函式簡單介紹

c 中的虛函式的作用主要是實現了多型的機制。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式 每個類都維護著一張虛函式表,呼叫虛函式時檢視物件是那個類,然後查表 基類可以使用為純虛函式 virtual void print 0 基類就是抽象類,要求子類...

C 虛函式簡單總結

2016 07 07 14 39 187人閱讀收藏 舉報 c 59 在類的繼承層次結構中,在不同層次中可以出現名字相同 引數個數和型別都相同的函式。簡單地說,被virtual關鍵字修飾的成員函式,就是虛函式。格式 virtual 函式返回值型別 函式名 引數列表 舉例 cpp view plain ...

函式的簡單介紹

函式 c 源程式由多個函式組成,main 函式是主函式,有且只能有乙個 main 函式。它可以呼叫其他函式,呼叫結束後返回 main 函式,最後由 main 函式結束整個程式。在 c 中函式的定義可以在 main 函式之前也可以在 main 函式之後。如果在main函式之後定義,則在 main 函式...