c++远征之继承篇——隐藏,isa,虚析构函数
生活随笔
收集整理的這篇文章主要介紹了
c++远征之继承篇——隐藏,isa,虚析构函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、隱藏
- 父子關系。
- 成員(數(shù)據(jù)成員或者成員函數(shù))同名;
- 此時子類中會隱藏父類中的同名成員。
- 無法函數(shù)重載,只會隱藏!
- 如果想訪問父類中的同名成員,需要 :: 操作。
- 訪問父類同名函數(shù)的方法
二、is-a
(1)概念的理解
- 工人也是人,士兵也是人,隱形眼鏡也是眼鏡。
- 即派生類的對象,也是基類的對象。
(2)從存儲角度理解
- 只能取部分內容賦值給父類,或者父類指針只能指向子類的部分內容。
三、虛析構函數(shù)
- 在父類和子類的析構函數(shù)前,添加關鍵字virtual,即可構成虛析構函數(shù)。
(1)虛析構函數(shù)的意義
int main(void) {person* p=&soldier;//……delete p; /*此時如果person類的析構函數(shù),只是普通的析構函數(shù),則只會調用person類的析構函數(shù),而不會調用soldier類的析構函數(shù) *這樣會造成內存泄漏,因為person類的析構函數(shù),只是釋放了部分的內存資源。 *解決方法是,在person類的析構函數(shù)前,添加關鍵字virtual,表示這是虛析構函數(shù)。則delet p時,會調用person類和soldier類的析構函數(shù)。 */return 0;}
總結
以上是生活随笔為你收集整理的c++远征之继承篇——隐藏,isa,虚析构函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从集合中选出一些元素组成子集合,使得这些
- 下一篇: 方舟综合指令代码大全系统综合