析構(gòu)函數(shù)是否被調(diào)用了兩次呢?
那請(qǐng)問(wèn)老師:析構(gòu)函數(shù)是否被調(diào)用了兩次呢?
$james=null;這個(gè)調(diào)用了一次析構(gòu)函數(shù)
打?。?From now on James will not be used.
然后程序結(jié)束以后又調(diào)用一次析構(gòu)函數(shù)。
打?。?Destroying James
Destroying Jordan
看這個(gè)打印的順序,好像是“后進(jìn)先出“的順序。
James在后,先清空。
Jordan在先,后清空。
然而這一句:From now on James will not be used.插在二個(gè)destroy之間。
是一起把james清空完了,接著清jordan。
=。=個(gè)人猜測(cè),請(qǐng)老師解答我的疑問(wèn)。
2015-12-18
一個(gè)對(duì)象被析構(gòu)之后就不存在了,所以不可能再調(diào)用一次它的析構(gòu)函數(shù)。
$james=null;之后,之前被james這個(gè)變量引用的那個(gè)對(duì)象沒(méi)人在使用了,所以就被釋放,也就是調(diào)用一次析構(gòu)。jordon的對(duì)象還被jordon這個(gè)變量引用,所以它在最后程序退出時(shí)才被釋放,所以在From now on James will not be used.這條語(yǔ)句之后調(diào)用析構(gòu)函數(shù),沒(méi)有所謂的“后進(jìn)先出”。