卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

基類為什么需要虛析構(gòu)函數(shù) 析構(gòu)函數(shù)為什么是虛函數(shù)?

析構(gòu)函數(shù)為什么是虛函數(shù)?使用delete PA指向基類引用時,釋放PA引用的內(nèi)存,PA引用B object,為什么不調(diào)用B的析構(gòu)函數(shù)呢?這里,由于是靜態(tài)綁定,當(dāng)B在編譯時確定了它指向的函數(shù)時,它不會根

析構(gòu)函數(shù)為什么是虛函數(shù)?

使用delete PA指向基類引用時,釋放PA引用的內(nèi)存,PA引用B object,為什么不調(diào)用B的析構(gòu)函數(shù)呢?這里,由于是靜態(tài)綁定,當(dāng)B在編譯時確定了它指向的函數(shù)時,它不會根據(jù)對象a來確定它指向的函數(shù),這樣,如果B申請內(nèi)存資源,但不釋放析構(gòu)函數(shù)中的資源,就會導(dǎo)致內(nèi)存泄漏。

仔細(xì)想想,這不是虛擬功能的原因嗎?

添加了虛擬機(jī)制。編譯時,虛擬機(jī)會自動將方法指向B的地址,通過設(shè)置機(jī)制可以找到B的析構(gòu)函數(shù)。

為了改變這一點(diǎn),有一個虛擬析構(gòu)函數(shù)

只要基類的析構(gòu)函數(shù)設(shè)置為virtual type,所有派生類都會自動將析構(gòu)函數(shù)設(shè)置為virtual type,以確保不會因?yàn)闆]有調(diào)用析構(gòu)函數(shù)而導(dǎo)致內(nèi)存泄漏。

C 中基類的析構(gòu)函數(shù)為什么要用virtual虛析構(gòu)函數(shù)?

如果不使用virtual進(jìn)行解構(gòu),則無法解構(gòu)子類,因?yàn)槟鷮⒅苯诱{(diào)用父類的解構(gòu)。

建議您補(bǔ)充多態(tài)性知識。多態(tài)性是如何實(shí)現(xiàn)的。