看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) None 問題(Question): 最近看到書上寫到pimpl, 想把這一套方法應用到我的API上面, 但是目前遇到一個問題, 想請教一下大家有沒有什麼方法可以解決。 首先我的程式架構是這樣: 我有一個CommonClass, 裡面宣告了幾個pure virtual function要給繼承的人實作, 同時也有幾個protected function是已經實作的。 我現在想把這幾個function用pimpl藏起來, 但是這樣在繼承的class裡面就看不到這些function了, 而這些function又是會被繼承的class使用到的。 我目前有想到的方法是把這幾個function放到另外的檔案裏面, 這樣不管是CommonClass或是繼承的class都可以看到, 但是還是想請問一下有沒有方法可以用pimpl做到這件事情? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.161.76 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1458830693.A.A2D.html
Caesar08: 來看看大師怎麼說 http://herbsutter.com/gotw/_100/ 03/24 23:06
大師說protected不應該放到pimpl裡面 所以我的問題算解決了XD 謝謝你!!
Clangpp: 我請教一下 這個應該跟design pattern中的Brige類似吧?? 03/25 09:52
Clangpp: bridge 03/25 09:52
Clangpp: 然後 我記得effective C++ itme 31 也有這種作法 03/25 09:56
Caesar08: 是的,不過這網址是公開的 03/25 11:11
Caesar08: 跟bridge不同 03/25 11:13
※ 編輯: petercoin (220.130.36.2), 03/25/2016 11:31:58