国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

boolan——c++學習筆記之多態對象模型

2019-11-08 18:38:42
字體:
來源:轉載
供稿:網友

c++用虛函數、虛指針、虛表的手段來實現多態,其中虛函數需要程序員手動書寫,虛指針和虛表由構造對象的時候在內存中生成。

下圖為對象多態模型:

有A、B、C三個對象,關系為B繼承A、C繼承B,并且每個類中有虛函數和非虛函數。

(1)生成對象時如果類中有虛函數,則會在內存中生成一個虛指針,指向一個虛函數表;

(2)如果父類有虛函數,子類對象繼承父類的虛指針,對象中虛指針只有一個;

(3)子類繼承父類所有虛函數和非虛函數;

(4)虛指針指向所有父類和子類的虛函數組成的函數指針數組,如果子類中存在與父類相同的虛函數(子類函數不一定要加virtual),則在虛函數表中替換為子類的函數;

(5)用父類的指針指向子類的對象實現多態,如:A *pBase = new B;

關于隱藏和覆蓋(重寫)

子類和父類有相同的函數,但是父類不是虛函數,也就是該函數不在虛函數表中,這種形態叫做隱藏,父類指針調用之類對象函數時調用的是父類函數;

覆蓋就是實現多態模型;


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 南岸区| 清流县| 左权县| 乐至县| 山西省| 攀枝花市| 巨鹿县| 河池市| 灯塔市| 全椒县| 唐山市| 安泽县| 汝城县| 达尔| 土默特右旗| 巨鹿县| 广河县| 林州市| 阿尔山市| 开化县| 高尔夫| 隆安县| 湖口县| 聂拉木县| 蛟河市| 长葛市| 当涂县| 平罗县| 包头市| 英吉沙县| 汨罗市| 安吉县| 招远市| 齐齐哈尔市| 桐乡市| 曲靖市| 民勤县| 惠来县| 台湾省| 丹巴县| 中江县|