1. 程式人生 > >菱形繼承和多型區別

菱形繼承和多型區別

菱形繼承
對於菱形繼承可參考這篇部落格:https://blog.csdn.net/sophia__yu/article/details/82791522
菱形繼承存在的問題是:資料冗餘和二義性;
在語法上解決資料冗餘和二義性:虛繼承
虛繼承底層:物件模型上,基類公共資料放在最下邊(因編譯器而定),通過虛基表指標指向的虛基表來找最下邊公共的基類。
多型:
對於多型可參考這篇部落格:
https://blog.csdn.net/sophia__yu/article/details/82791592
多型在語法上:虛擬函式的重寫、物件是基類的指標或引用,物件指向派生類則調派生類虛擬函式,物件指向基類則調基類虛擬函式;
多型底層實現:物件模型上,通過虛表指標指向的虛擬函式表來呼叫對應虛擬函式,是執行時實現繫結。