亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 問(wèn)一個(gè)異常處理中棧展開(kāi)的問(wèn)題 [打印本頁(yè)]

作者: jaffaz    時(shí)間: 2007-05-14 09:37
標(biāo)題: 問(wèn)一個(gè)異常處理中棧展開(kāi)的問(wèn)題
棧展開(kāi)的時(shí)候,異常處理機(jī)制是如何檢測(cè)哪些對(duì)象是需要析構(gòu)的?
作者: jaffaz    時(shí)間: 2007-05-14 09:50
我想知道編譯器通常是如何在運(yùn)行時(shí)實(shí)現(xiàn)這個(gè)功能的。
因?yàn)閏++中的對(duì)象可以在函數(shù)體內(nèi)的任何地方定義,并且還有塊局部域、臨時(shí)對(duì)象的存在,
感覺(jué)上這個(gè)棧展開(kāi)過(guò)程比較復(fù)雜
作者: jaffaz    時(shí)間: 2007-05-14 10:25
沒(méi)人頂?
作者: lsmup    時(shí)間: 2007-05-14 12:56
基本類型的組合,方便處理而已。
如果如果對(duì)象含有指向堆上內(nèi)存的指針,就釋放內(nèi)存
思想上應(yīng)該如此
作者: jaffaz    時(shí)間: 2007-05-14 13:10
原帖由 lsmup 于 2007-5-14 12:56 發(fā)表
基本類型的組合,方便處理而已。
如果如果對(duì)象含有指向堆上內(nèi)存的指針,就釋放內(nèi)存
思想上應(yīng)該如此

棧展開(kāi)是不會(huì)自動(dòng)釋放堆上分配的內(nèi)存的。
僅僅是析構(gòu)已創(chuàng)建的對(duì)象而已。
我的問(wèn)題是,是不是需要保存額外的信息來(lái)描述哪些對(duì)象已經(jīng)被創(chuàng)建了?
作者: hellomotor    時(shí)間: 2007-05-14 17:19
毫無(wú)疑問(wèn),編譯器需要登記這些信息,詳見(jiàn) http://script.chinadir.net/10594.htm
作者: jaffaz    時(shí)間: 2007-05-14 22:05
原帖由 hellomotor 于 2007-5-14 17:19 發(fā)表
毫無(wú)疑問(wèn),編譯器需要登記這些信息,詳見(jiàn) http://script.chinadir.net/10594.htm

那對(duì)于一些很普通的函數(shù)豈不是很無(wú)辜,白干了這些活?
ps: void func(void) throw(); 這種聲明還會(huì)不會(huì)登記這些信息
作者: hellhell    時(shí)間: 2007-05-14 22:40
有本講C語(yǔ)言接口設(shè)計(jì)的書(shū),里面有一章用宏在C上實(shí)現(xiàn)了異常處理...
拋出異常之時(shí),只是在出方法的作用域時(shí)會(huì)把所有的局部對(duì)象析構(gòu)吧.
PS:樓上某人給出的鏈接全是亂碼.
作者: jaffaz    時(shí)間: 2007-05-15 10:51
原帖由 hellhell 于 2007-5-14 22:40 發(fā)表
有本講C語(yǔ)言接口設(shè)計(jì)的書(shū),里面有一章用宏在C上實(shí)現(xiàn)了異常處理...
拋出異常之時(shí),只是在出方法的作用域時(shí)會(huì)把所有的局部對(duì)象析構(gòu)吧.
PS:樓上某人給出的鏈接全是亂碼.

我這里能夠正常顯示。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2