2014-05-21 22 views
1

當我在main()的末尾調用Pool::releaseAllObjects()方法時,我在調用一個C++池分配器來銷燬其中的所有對象。但如果有人意外地在對象上調用了刪除,則池將以隨機順序銷燬對象。 我的問題是如何在main()末尾的析構函數的隨機調用順序可以「有害」?C++可以改變析構函數的調用順序是否有害?

+2

如果析構函數全部正確寫入,它不可能是一個問題。 – EJP

+0

@EJP請你詳細說明如何正確和不正確地寫入析構函數?即什麼使析構錯誤地寫入? – exTrace101

+0

析構函數不應該依賴於其他對象的生命。破壞通常與施工相反。 –

回答

0

只要對構造函數體無關緊要,順序並不重要。如果這些對象互相引用,並且在析構函數中調用裁判的方法,那麼顯然與銷燬順序無關。否則你是安全的。

相關問題