Re: [問題] 多型的自動回收

看板C_and_CPP (C/C++)作者 (眠月)時間16年前 (2009/10/07 21:11), 編輯推噓2(202)
留言4則, 1人參與, 最新討論串9/13 (看更多)
※ 引述《legnaleurc (CA)》之銘言: : 我想我把我的 interface 勾出來會比較清楚一點: : class Base { : public: : virtual ~Base() { : close(); : } 不要 = =" 既然資源是在 D 配的,D 要自己處理,不要給 B 管 所以這邊改成這樣 virtual ~Base() {} // 蝦米都不做 : class Derived { : virtual void doClose() { : // ... : } 然後 D 加上解構子 virtual ~Derived () { // 我自己來 XD D::doClose(); // ~B() 不能呼叫虛擬函數 } // 我自己呼叫應該沒問題吧??? 還是我哪邊錯惹?????????? -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.107.43

10/08 01:09, , 1F
我猜是可能有個template method pattern吧 在BASE做點事
10/08 01:09, 1F

10/08 01:09, , 2F
但是是跟subclass使用的資源無關但通用的 ex. logging ?
10/08 01:09, 2F

10/08 01:13, , 3F
而且dtor是virtual的話 每個subclass都會呼叫 超過兩層
10/08 01:13, 3F

10/08 01:14, , 4F
的subclass 還是會呼叫到virtual...
10/08 01:14, 4F
文章代碼(AID): #1Ap9EQ6C (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1Ap9EQ6C (C_and_CPP)