討論串[問題] 多型的自動回收
共 13 篇文章

推噓3(3推 0噓 5→)留言8則,0人參與, 最新作者cplusplus (沒事多聊天~ 歡迎打屁)時間16年前 (2009/10/07 16:15), 編輯資訊
0
0
0
內容預覽:
不,稍微有點不同,現在是原PO可能有個template method,所以希望所有subclass. 去改寫doClose,但是難題是這個體系的class會被包在shared_ptr之類的東西. 所以需要從destructor自動去釋放資源,所以無法用手動的方式處理. 所以如果照 littlesha
(還有160個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者xam (聽說)時間16年前 (2009/10/07 15:31), 編輯資訊
0
0
0
內容預覽:
我覺得 littleshan 的文章(包含該篇及之前的推文)已經回答你的問題了. 基本上就是使用 virtual destructor. jacobcrab 和 Ebergies 的提議似乎是把問題變複雜了 QQ. --. 發信站: 批踢踢實業坊(ptt.cc). ◆ From: 192.192

推噓3(3推 0噓 8→)留言11則,0人參與, 最新作者Ebergies (火神)時間16年前 (2009/10/07 14:03), 編輯資訊
0
0
0
內容預覽:
你要不要試著用 aggregation. class Base {. public:. Base( BaseInterface *entity) { content= entity; }. void open() { content->doOpen(); }. void close() { cont
(還有85個字)

推噓0(0推 0噓 2→)留言2則,0人參與, 最新作者jacobcrab (雅古蟹)時間16年前 (2009/10/07 05:39), 編輯資訊
0
0
0
內容預覽:
你要不要嘗試著使用auto_ptr?. 我是說,如果你把你要用的資源,包裝在一個Resource物件裡面。當這個Resource物件被destroy的時候,會自動地把資源釋放。那,你的Base就會很簡單.. class Base {. public:. void open() { initResou
(還有1118個字)

推噓6(6推 0噓 8→)留言14則,0人參與, 最新作者legnaleurc (CA)時間16年前 (2009/10/07 01:31), 編輯資訊
0
0
1
內容預覽:
OK, 也許我描述得不夠清楚, 現在綜合兩篇的內容. class Base {. public:. void open() {. // .... this->doOpen();. // .... this->opening_ = true;. }. void close() {. // .... t
(還有341個字)