http://www.cnblogs.com/chaoguo1234/archive/2013/05/12/3074425.html
c++中,臨時對象一旦不需要,就會調用析構函數,釋放其占有的資源;而具名對象則是與建立的順序相反,依次調用析構函數。
c++源碼:


對應的彙編碼:


從上面的彙編碼可以看出,臨時對象确實是在不需要之後就調用了析構函數,盡管它在x2對象之前被建立,但依然在x2對象之前被析構。而x1 x2析構函數調用順序,是與他們構造函數的調用順序相反。
再看下面的情況:
c++中的源碼:


這裡,改造臨時對象之後,有一個逗号表達式,而不是分号。
下面是彙編碼:


可以看到,與第一次不同的是,臨時對象構造完畢之後,并沒有立即調用析構函數,而是執行了逗号後面的指派語句後,才調用的析構函數。
綜上所述:
臨時對象調用析構函數的時機是一條進階語言執行完畢的時候,而一條進階語言執行完畢的标志是分号。是以,臨時對象調用析構函數的時機是碰到分号的時候
------------------越是喧嚣的世界,越需要甯靜的思考------------------
合抱之木,生于毫末;九層之台,起于壘土;千裡之行,始于足下。
積土成山,風雨興焉;積水成淵,蛟龍生焉;積善成德,而神明自得,聖心備焉。故不積跬步,無以至千裡;不積小流,無以成江海。骐骥一躍,不能十步;驽馬十駕,功在不舍。锲而舍之,朽木不折;锲而不舍,金石可镂。蚓無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。蟹六跪而二螯,非蛇鳝之穴無可寄托者,用心躁也。