C++繼承內存佈局 - 多繼承(無虛繼承)

接下來看多繼承的內存佈局情況。 首先是沒有虛函數的情況,有如下類, 則內存佈局如下,沒有特別需要注意的地方, 接下來看看,有虛函數的情況,修改代碼如下, 則佈局情況如下。可以看到有兩個虛表指針,每個基類對應一個。第二個虛表的-8表示指向這個虛表的指針的內存偏移。同時要注意子類的FunS函數所在的虛表。 最後再看一種有共同基類的情況, 則內存佈局如下。可以看到因爲有倆個直接基類,所以會有倆個虛表。第
相關文章
相關標籤/搜索