在C++中,不管哪一種繼承方式下派生類都會把父類全部的數據繼承,區別在因而否能訪問
賦值兼容規則以下:
1.能夠直接用派生類對象給基類對象賦值
2.能夠直接用派生類對象的地址給基類指針賦值
3.能夠使用派生類對象爲基類的引用直接進行初始化
但該原則不能反向運行,願意以下:
實例化一個類型時要調動構造方法,而子類在構造前要先構造父類對象,編譯器提早開闢出子類加父類總大小的空間。父類成員構造完成後先放入,再把子類成員構造出來加在後面,而繼承則是把全部成員放在一塊兒構成子類對象。子類能夠給父類賦值是由於子類成員包括了父類成員,賦值時只是用到了和父類相同的空間(稱之爲對象切片),父類須要什麼成員,子類均可以一一提供。而反過來父類作不到提供子類須要的全部的成員。ide