何時使用虛擬析構(gòu)函數(shù)?我對大多數(shù)OO理論有了深刻的理解,但讓我困惑的一件事是虛擬析構(gòu)函數(shù)。我認為無論什么以及鏈中的每個對象,析構(gòu)函數(shù)總是會被調(diào)用。你什么時候打算讓它們成為虛擬的?為什么?
4 回答

蝴蝶不菲
TA貢獻1810條經(jīng)驗 獲得超4個贊
在多態(tài)基類中聲明析構(gòu)函數(shù)是虛擬的。這是Scott Meyers的Effective C ++中的第7項。邁爾斯繼續(xù)總結(jié),如果一個類有任何虛函數(shù),它應(yīng)該有一個虛析構(gòu)函數(shù),而不是類設(shè)計為基類或不是設(shè)計用于多態(tài)應(yīng)不聲明虛析構(gòu)函數(shù)。

www說
TA貢獻1775條經(jīng)驗 獲得超8個贊
還要注意,在沒有虛析構(gòu)函數(shù)時刪除基類指針將導(dǎo)致未定義的行為。我剛剛學(xué)到的東西:
我已經(jīng)使用C ++多年了,我仍然設(shè)法掛起自己。
- 4 回答
- 0 關(guān)注
- 561 瀏覽
添加回答
舉報
0/150
提交
取消