序言:
這裡 A 為 基類 有一個純虛函數,目的是多态(虛函數表指針),還有造成一個棱形二義性的變量,是以使用虛繼承,目的虛表指針:
左邊是代碼 右邊是 記憶體布局和解釋;希望能幫到你。
總結:
可以看到 在記憶體布局中: 依次是繼承順序的兩個父類虛基表和類成員資訊;然後 是虛函數表指針,基類的成員。
再來看看 虛繼承的含虛函數類對象記憶體布局 和 普通含虛函數類對象記憶體布局 的對比:
詳細看圖解,鄙人不喜歡用語言,喜歡用圖像
這裡 A 為 基類 有一個純虛函數,目的是多态(虛函數表指針),還有造成一個棱形二義性的變量,是以使用虛繼承,目的虛表指針:
左邊是代碼 右邊是 記憶體布局和解釋;希望能幫到你。
可以看到 在記憶體布局中: 依次是繼承順序的兩個父類虛基表和類成員資訊;然後 是虛函數表指針,基類的成員。
再來看看 虛繼承的含虛函數類對象記憶體布局 和 普通含虛函數類對象記憶體布局 的對比:
詳細看圖解,鄙人不喜歡用語言,喜歡用圖像