{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}
方法二:使用抽象類來實現接口與實現的分離。x.h
x.cpp
posted on 2007-08-06 23:17 夢在天涯 閱讀(10796) 評論(8) 編輯 收藏 引用 所屬分類: CPlusPlus
聽說boost::shared_ptr不大太讓人信賴。 回復 更多評論
啊,為什么啊,我常用的就是在vector等容器中使用shared_ptr代替auto_ptr。 回復 更多評論
基本上沒有用過往容器里面扔過智能指針。還是直接用raw指針。 回復 更多評論
第二種方法的create方法可以作為X class接口類的static方法! 第一種方法中,如果pimpl class需要訪問CTest接口類基類的話,可以把pimpl class申明為CTest接口類的friendly類。 回復 更多評論
在 CTest 里面用 boost::shared_ptr 保持 CTestImp 的指針會有問題. 這樣會造成不同的 CTest 對象對應到同一個 CTestImp 對象.CTest a;CTest b(a);也就是說 a.pimpl_.get() 會等於 b.pimpl_.get(). (假設 CTest::impl_ 為 public)我想這不是你想要的結果. 回復 更多評論
@fr3@K 這就要看CTest 是值語義還是指針語義了,對于指針語義,我覺得最好采用第二種接口類辦法,這樣概念上不會混淆,也便于將來派生新的功能。 回復 更多評論
第一種方式比較奇怪啊,感覺毫無意義啊 增加功能的角度有adapter模式 隔離的角度有proxy模式 第二種是典型的接口 回復 更多評論
長見識!!! 回復 更多評論