虚基类(c++细节篇七)
生活随笔
收集整理的這篇文章主要介紹了
虚基类(c++细节篇七)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
虛基
采用虛基類的方法,可使派生類在繼承間接共同基類時只保留一份成員,既減少了存儲空間,也消除了成員訪問的二義性。
定義格式:
class 派生類名:virtual 繼承方式 基類名
{
派生類新增成員。
}
注意
1.虛基類并不是在聲明基類時聲明的,而是在聲明派生,指類定繼承方式時聲明的。
2.為了保證虛基類的成員函數在派生類中只繼承一次,應當在所有直接派生類中聲明該基類為虛基類。
3.在虛基類繼承中,派生類的構造函數不僅要調用其直接基類的構造函數,還需要調用其間接基類的構造函數,(折構函數也是)。
4.虛函數是動態綁定的基礎。
5.是非靜態的成員函數。
6.具有繼承性,基類中聲明了虛函數,派生類中無論是否說明,同原型函數都自動為虛函數。
7.本質:不是重載聲明而是覆蓋。
8.調用方式:通過基類指針或引用,執行時會根據指針指向的對象的類,決定調用哪個函數。
虛析構函數
為什么需要虛析構函數?
1.可能通過基類指針刪除派生類對象;
2.如果你打算允許其他人通過基類指針調用對象的析構函數(通過delete這樣做是正常的),就需要讓基類的析構函數成為虛函數,否則執行delete的結果是不確定的。
總結
以上是生活随笔為你收集整理的虚基类(c++细节篇七)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类继承(c++细节篇六)
- 下一篇: c++中同名函数的三个不同术语(c++细