為什么這里的析構(gòu)函數(shù)順序和對(duì)象數(shù)據(jù)成員不一樣呢?
為什么這里的析構(gòu)函數(shù)的調(diào)用順序仍然是和構(gòu)造函數(shù)的順序一樣呢?不是應(yīng)該反過(guò)來(lái),先析構(gòu)line()再析構(gòu)Coordinate()嗎?為什么這里不是呢??
為什么這里的析構(gòu)函數(shù)的調(diào)用順序仍然是和構(gòu)造函數(shù)的順序一樣呢?不是應(yīng)該反過(guò)來(lái),先析構(gòu)line()再析構(gòu)Coordinate()嗎?為什么這里不是呢??
2015-06-21
舉報(bào)
2016-08-09
我的理解是這樣的:因?yàn)?m_pCoorA 和 m_pCoorB 指向‘堆’中的兩塊內(nèi)存(Line.cpp中的定義),而Line *p 是‘?!械囊粋€(gè)指針,所以因?yàn)椤岸阎械膬?nèi)存比較重要”,所以先釋放堆中的內(nèi)存,也就先調(diào)用m_pCoorA和 m_pCoorB的析構(gòu)函數(shù)(~Coordinate()),再調(diào)用Line的析構(gòu)函數(shù)
2016-05-07
要是在棧中的情況的話是出棧的時(shí)候是要反過(guò)來(lái)析構(gòu)的,但是在堆中就不是反過(guò)來(lái)的了,區(qū)別在這里
2015-12-21
Coordinate 的析構(gòu)函數(shù)在 delete coordinate 的時(shí)候就調(diào)用了,因?yàn)?Line 的析構(gòu)函數(shù)是先 delete 兩個(gè) coordinates,然后再打印,所以顯示的順序就是圖上顯示的那樣。
2015-06-25
這是在堆中創(chuàng)建的對(duì)象~不按先進(jìn)后出原則;delete了就調(diào)用析構(gòu)函數(shù)~
2015-06-21
也看不見(jiàn)你的代碼。。。怎么分析呢。。。?