→ carylorrk: 通常講到 interface 會是指只有 pure virtual function 12/07 16:41
→ carylorrk: 的 class,不過跟 C#/Java 的 interface 還是完全不同 12/07 16:42
謝謝cary大的回應,我又冒出了其他的問題..
C++ interface :
定義:只是口語上的用法,其實還是抽象類別
方式:使用抽象類別,但只包含純pure virtual function
Q:那這時候還需要virtual解構式嗎?如此抽象類別,全部都是pure virtual function。
※ 編輯: crazycat2 (203.70.168.153), 12/07/2014 17:04:34
→ carylorrk: 要,基本上所有 base class 可能都需要。重點不在於 12/07 17:25
→ carylorrk: base class 的成員,而是在 polymorphism 時正確利用到 12/07 17:27
→ carylorrk: inheritance hierarchy 中的 destructor 12/07 17:29
→ crazycat2: 真的謝謝了。 12/07 17:38
→ tinlans: 如果是實現 strategy pattern,你的 concrete strategy 12/07 19:45
→ tinlans: 本身不帶狀態,其實也是可以不用 virtual dtor 的。 12/07 19:46
→ tinlans: 不過這樣寫很吃編譯器實作,標準是說你用到多型導致動態 12/08 17:37
→ tinlans: 跟靜態型別不同,靜態型別無 virtual dtor 又對靜態型別 12/08 17:38
→ tinlans: 的 pointer 做 delete 就是 undefined behavior。 12/08 17:38
→ crazycat2: 謝謝T大的解釋,我會重複想一下的。 12/08 22:16