討論串[問題] 多型的自動回收
共 13 篇文章
首頁
上一頁
1
2
3
下一頁
尾頁

推噓8(8推 0噓 17→)留言25則,0人參與, 最新作者yoco315 (眠月)時間16年前 (2009/10/08 12:24), 編輯資訊
0
0
0
內容預覽:
在 virtual dtor 釋放資源的設計是對的。(這不是基本中的基本嗎?). 這跟他是不是要用 template method pattern 無關。. T 取得的資源就在由 T 來釋放。. 他在其他要呼叫 template method 的地方都可以盡情的呼叫沒關係,. 但是本質上資源管理是正
(還有373個字)

推噓0(0推 0噓 6→)留言6則,0人參與, 最新作者littleshan (我要加入劍道社!)時間16年前 (2009/10/08 10:17), 編輯資訊
0
0
0
內容預覽:
話說我想到另一個方法. 因為並非所有的 C++ 物件都適合用 delete 來回收,. 因此 shared_ptr 提供了一個彈性,. 讓使用者可以修改物件回收的行為。. 既然如此,我們可以從這邊下手,. 讓 shared_ptr 自動幫我們呼叫 close(). void base_deleter
(還有150個字)

推噓2(2推 0噓 7→)留言9則,0人參與, 最新作者cplusplus (沒事多聊天~ 歡迎打屁)時間16年前 (2009/10/08 04:44), 編輯資訊
0
0
0
內容預覽:
我覺得這發生的機會比較少,如果會去改寫doClose的話,. 應該不會忘了在dtor裡面加上自動呼叫。. 我覺得原PO不是為了這個問題,而是原PO使用template method pattern,. 想呼叫的是 close() 不是 doClose()。. // template method.
(還有558個字)

推噓1(1推 0噓 3→)留言4則,0人參與, 最新作者minazukimaya (水無月真夜)時間16年前 (2009/10/08 03:04), 編輯資訊
0
0
0
內容預覽:
如果我的理解沒錯. 原po他希望的是 Derived裡面有個function負責relase資源. 但是在錯誤使用(delete 前忘了呼叫close的時侯)能夠自動釋放. 而且重要的是,希望能在Derived的設計者「忘了」在dtor呼叫doClose的時侯. 只要是從Base class繼承出來
(還有1185個字)

推噓2(2推 0噓 2→)留言4則,0人參與, 最新作者yoco315 (眠月)時間16年前 (2009/10/07 21:11), 編輯資訊
0
0
0
內容預覽:
不要 = =". 既然資源是在 D 配的,D 要自己處理,不要給 B 管. 所以這邊改成這樣. virtual ~Base() {} // 蝦米都不做. 然後 D 加上解構子. virtual ~Derived () { // 我自己來 XD. D::doClose(); // ~B() 不能呼叫虛
(還有27個字)
首頁
上一頁
1
2
3
下一頁
尾頁