C++
-
子類物件模型、
- 派生類包含多個組成部分(多個子物件)多個物件的內容不一定是要相聯系、
- 含有子類自己定義的成員變數、成員函式的子物件、
- 子類繼承基類的子物件、子物件包含基類定義的成員變數、成員函式、
- 子類 物件可以當成父類物件使用、因為派生類物件含有基類部分、
- 可以用基類指標new子類物件、編譯器隱式從子類轉換到基類、可以在使用基類參考的地方直接用子類物件的參考代替、
-
子類建構式、
- 子類是使用父類的建構式來初始化它的父類部分、父類控制父類部分的成員函式初始話、子類負責子類部分函式成員的初始化、二則不相干擾、互不影響、
- 結構繼承默認為public(公有)繼承、
- 建構式時先執行基類的建構式、再執行子類的建構式、釋放時相反、先釋放子類的建構式、再釋放父類的建構式、、
-
即當父類又是子類、
-
class a{ }; class b :public a { }://a是b的直接基類、 class c :public b { }://a是c的間接基類、 -
繼承關系一直傳遞、構成繼承鏈、最終結構會是c包含它的直接父類的成員以及每一個間接父類的成員、
-
直接基類、
-
間接基類、
-
b即使父類又是子類、
-
-
不當父類的類
- final關鍵字、放在類名后面、便使此類不能成為基類
-
靜態型別與動態型別、
- 靜態型別便是變數宣告時候的型別、靜態型別編譯的時候使已知的、
- 動態型別指標或參考表達或代表的記憶體中的物件型別、運行時才知道、
- 動靜型別只有基類指標或參考才存在動靜型別不一致的情況、沒有基類指標或參考則動靜型別是一致的、也就是說沒有動態型別和靜態型別、
-
子類向基類的隱式型別轉換、
- 編譯器隱式執行子類轉換成父類是因為每個派生類物件都包含父類部分、
- 基類物件可以獨立物件的存在、也可以作為子類物件的一部分存在、
- 沒有父類轉子類的自動型別轉換、
- 子類的參考不能系結到基類上、同樣、派生類的指標不能指向父類地址、
- 如果父類中有虛函式便可以通過dynamin_cast轉換、子類轉父類、
-
父類與派生類之間的拷貝與賦值、
- 派生類物件來定義并初始化基類物件、會導致基類拷貝函式執行、
- 無論是賦值還是拷貝均是只能處理基類自己的成員、無法處理派生類中的成員、即便是派生類的、
- 用派生類物件為一個基類物件初始化或賦值時、只有該派生類物件的基類部分會被拷貝和賦值、派生部分會被忽略掉、
- 父類動子類的東西、
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/175972.html
標籤:C++
