《C++ Primer Plus(第六版)》(25)(第十三章 类继承 笔记)
1.派生類構造函數的要點:
? ? 首先創建基類對象;
? ? 應通過成員初始化列表將基類的初始化信息傳遞給基類的構造函數;
? ? 派生類構造函數應初始化新增的數據成員
2.首先執行派生類的析構函數,然后自動調用基類的析構函數.
3.基類指針可以在不進行顯式類型轉換的情況下指向派生類對象,基類引用可以在不進行顯式類型轉換的情況下引用派生類對象.
4.C++有三種繼承方式,共有繼承,私有繼承和保護繼承
5.帶有virtual的方法,在調用的時候,將調用指針或者引用所指向的具體對象的類的方法.
基類聲明中如果析構函數為虛,可以確保釋放派生類的時候,按照正確的順序來調用析構函數.
6.在編譯過程中進行的聯編稱為靜態聯編,或早期聯編。編譯器對非虛方法使用靜態聯編。
程序運行時選擇正確的虛函數的代碼,被稱為動態聯編,又稱為晚期聯編。
靜態聯編效率高,是默認的聯編方式。
如果需要在派生類中重新定義基類的方法,則將它設置為虛方法,否則是非虛的。
C++中,基類有虛函數表,聲明派生類的時候,如果重載了基類的虛函數,則會替換掉虛函數表中該函數的地址。
7.構造函數被聲明為虛是沒有意義的。
析構函數應當是虛函數。
8.在子類中,重新定義函數,并不會形成重載,而是屏蔽掉父類的同名方法。
想要重載父類方法,函數的特征標應該完全相同,但是如果返回的是父類的引用或指針,則可以改成子類的引用或指針。這被稱為返回類型協變(covariance of return type)
如果父類中有多個同名函數,而子類只重載了一個,則剩下的函數版本會被屏蔽掉。子類只能使用重載的那個函數。
9.包含純虛函數的類,只能作為基類使用。
抽象基類(abstract base class, ABC)抽象基類
純虛函數,仍然可以提供函數的實現。聲明了=0,只是表示可以不定義,而不是不能定義。
轉載于:https://www.cnblogs.com/fablegame/p/6430239.html
總結
以上是生活随笔為你收集整理的《C++ Primer Plus(第六版)》(25)(第十三章 类继承 笔记)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言英美姓名,英美常用人名——C-D
- 下一篇: 高清网络摄像机主流芯片方案之安霸、TI和