看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
cplusplus:我猜是可能有個template method pattern吧 在BASE做點事 10/08 01:09
cplusplus:但是是跟subclass使用的資源無關但通用的 ex. logging ? 10/08 01:09
cplusplus:而且dtor是virtual的話 每個subclass都會呼叫 超過兩層 10/08 01:13
cplusplus:的subclass 還是會呼叫到virtual... 10/08 01:14