成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

析構(gòu)函數(shù)為什么是虛函數(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)綁定,當B在編譯時確定了它指向的函數(shù)時,它不會根

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

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

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

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

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

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

析構(gòu)函數(shù)和虛函數(shù)的用法及作用?

析構(gòu)函數(shù)用于釋放已定義對象中使用的指針。不需要調(diào)用默認的析構(gòu)函數(shù),而需要在程序結(jié)束時調(diào)用自建的析構(gòu)函數(shù)。虛函數(shù)可以使成員函數(shù)的運算泛化。當基類的指針指向不同派生類的對象時,如果基類的指針調(diào)用其虛成員函數(shù),它將調(diào)用實際指向該對象的成員函數(shù),而不是基類中定義的成員函數(shù)(只要派生類更改成員函數(shù))。如果它不是虛函數(shù),則無論基類指針指向哪個派生類對象,都將調(diào)用在基類中定義的函數(shù)。