C 虛函式表解析

2021-07-26 16:33:45 字數 365 閱讀 3160

c++ 虛函式表解析:

c++ 物件的記憶體布局(上):

c++ 物件的記憶體布局(下):

虛函式表:

類最開始的位置指定虛函式表位址。

類儲存其每個父類的虛函式表

虛函式表中儲存所有的虛函式,如果子類覆蓋了父類的虛函式,則儲存子類的函式位址,否則儲存父類的函式位址

類自己新增的函式存在第乙個父類的虛函式表中

類的儲存結構

如果不是共享繼承,則類先儲存每個父類的虛函式表和資料,最後儲存自己的資料

如果多個父類有共同的父類,則孫子類中儲存多份爺爺類

如果的共享繼承,則共同爺爺類存在最後,每個父類要多儲存乙份爺爺類相對於本類的偏移

C 虛函式表解析

前言 c 中的虛函式的作用主要是實現了多型的機制。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。這種技術可以讓父類的指標有 多種形態 這是一種泛型技術。所謂泛型技術,說白了就是試圖使用不變的 來實現可變的演算法。比如 模板技術,rtti技術,虛函式...

C 虛函式表解析

c 中的虛函式的作用主要是實現了多型的機制。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。這種技術可以讓父類的指標有 多種形態 這是一種泛型技術。所謂泛型技術,說白了就是試圖使用不變的 來實現可變的演算法。比如 模板技術,rtti技術,虛函式技術,...

C 虛函式表解析

今天我做的筆記 c 中的虛函式的作用主要是實現了多型的機制。關於多型,簡而言之就是用父型別別的指標指向其子類的例項,然後通過父類的指標呼叫實際子類的成員函式。這種技術可以讓父類的指標有 多種形態 這是一種泛型技術。所謂泛型技術,說白了就是試圖使用不變的 來實現可變的演算法。比如 模板技術,rtti技...