Re: [問題] 多型的自動回收
在 virtual dtor 釋放資源的設計是對的。(這不是基本中的基本嗎?)
這跟他是不是要用 template method pattern 無關。
T 取得的資源就在由 T 來釋放。
他在其他要呼叫 template method 的地方都可以盡情的呼叫沒關係,
但是本質上資源管理是正交的一件事,
「要放掉 T 取得的資源的時候,事情就是在 T 的 dtor 作」
乖乖的把東西在 T::~T() 用 T::doClose() 放掉就對了。
繼承的深度並不是問題,
D1::~D1() { D1::doClose() ; }
D2::~D2() { D2::doClose() ; }
D3::~D3() { D3::doClose() ; }
串一百層也一樣,資源管理這回事就是「每個人管好自己」就對了。
這個觀念不管在哪邊都是一樣,
老實說我一開始就不明白這個問題為什麼是個問題 -_-a
原 po 不要被什麼 template method pattern 迷惑了雙眼阿,
事情很簡單,就是乖乖在 dtor 把資源放掉就對了。
偷懶的話就是把要管的資源用 share_ptr 包住。
這樣什麼都不用管。
--
To iterate is human, to recurse, divine.
遞迴只應天上有, 凡人該當用迴圈. L. Peter Deutsch
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.160.254.105
推
10/08 12:27, , 1F
10/08 12:27, 1F
→
10/08 12:29, , 2F
10/08 12:29, 2F
→
10/08 12:29, , 3F
10/08 12:29, 3F
推
10/08 13:55, , 4F
10/08 13:55, 4F
推
10/08 19:31, , 5F
10/08 19:31, 5F
→
10/08 19:32, , 6F
10/08 19:32, 6F
→
10/08 19:33, , 7F
10/08 19:33, 7F
推
10/08 19:35, , 8F
10/08 19:35, 8F
推
10/08 19:43, , 9F
10/08 19:43, 9F
推
10/08 21:35, , 10F
10/08 21:35, 10F
→
10/08 21:36, , 11F
10/08 21:36, 11F
→
10/08 21:37, , 12F
10/08 21:37, 12F
→
10/08 21:45, , 13F
10/08 21:45, 13F
→
10/08 21:45, , 14F
10/08 21:45, 14F
→
10/08 21:46, , 15F
10/08 21:46, 15F
→
10/08 21:46, , 16F
10/08 21:46, 16F
→
10/08 21:46, , 17F
10/08 21:46, 17F
→
10/08 21:48, , 18F
10/08 21:48, 18F
→
10/08 21:48, , 19F
10/08 21:48, 19F
→
10/08 21:49, , 20F
10/08 21:49, 20F
推
10/08 22:44, , 21F
10/08 22:44, 21F
→
10/08 22:45, , 22F
10/08 22:45, 22F
推
10/08 23:06, , 23F
10/08 23:06, 23F
→
10/08 23:07, , 24F
10/08 23:07, 24F
→
10/08 23:07, , 25F
10/08 23:07, 25F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章