re: 微妙的隱式轉換 Arcrest 2006-07-31 12:51
@ff
你可以寫個簡單的程序測試一下,是可以的
繼承型的行為模式
和STL算法模板 + functor思想相似
不過一個編譯時靜態、一個運行時動態
re: 別了,VC6!!! Arcrest 2006-07-25 12:58
VC6的STL在C++標準化之前,支持得很差
VS.NET后好多了
re: 亂序Policy手法 Arcrest 2006-07-24 12:06
靜態的多態還是有用的時候,C++ Modern Design詳解
當然項目中的話,維護人員要求高了點。。。
re: 關于static的筆試題及解答 Arcrest 2006-07-13 16:41
static該區分一下C和C++的,因為C++還有類就多了與普通成員的區別,
static函數就知道限制可見范圍只在本文件中,C++中推薦用匿名namespace替代,
至于那個普通函數在內存中有拷貝就不知所云了
文學表達很好,
侯捷的書籍受歡迎的原因除了深入淺處的分析外,就是文筆
樓主的技術鉆研精神也值得偶們學習
他們都回答了嘛,而且太詳細了的說,歷史都被搬出來了
兩種都可以被編譯器接受,只是用實例訪問的方式已經不推薦使用了
至于MSDN上那個,也許是寫文檔的開發人員堅持第二種吧
re: STL 備忘錄 Arcrest 2006-07-12 15:47
呵呵,都是Effective STL里面的條目啊
那個12點有點詭異,也容易忘記,不過知道remove的原理就容易記住了
re: 談類的初始化 Arcrest 2006-07-12 15:41
那個參數太長,意思可以考慮把之間有相互關系的參數合并到一個類中作為成員變量,然后傳入類的實例
針對接口編程確實才是真正的OOP
用StreamReader/Writer,使得操作配置文件的都針對這個接口來操作,而不關心數據從哪兒來,當然個人覺得,GetValue/SetValue的接口應該和Open/Save分開,打開數據和保存數據的操作一般是開始和結束的,而使用GetValue/SetValue則可能到處都使用,不過還是看你應用了,抽象和分離職責是OOP設計中的最難的。
設計個好的比較通用的配置庫確實不容易,以前參考過apache的jakarta commons的Configuration的項目,但是終覺得對C++不適合,缺少的東西太多,人家Java畢竟不只是語言,而更是一個平臺。 也看過eMule等開源軟件的配置設計,感覺五花八門,什么都有,得出的結論是針對具體的項目寫,通用的太難。
以上大俠提到的boost的serialization還沒看過,是在io的庫中嗎?不過boost的都是好東東的說,:)
re: 編程感悟 Arcrest 2006-06-30 15:32
1,關鍵是抽象吧,設計的難點
2,偶也感覺很頭疼的,找不到一個合適的log庫,log4cxx等都有好多無法容忍的缺點,自己改寫小點吧,又好累~~
3和4,呵呵,Effective C++里面討論得不少
5,使用文件這種方法很局限,缺點太多,最重要的等于是給這個類強加了一個讀取文件的依賴。如果參數太長,應該考慮重構,用類來替代,至于類實例的初始化,從文件讀取還是從網絡讀取,那是新的類的職責了
6,所有變量private,部分變量可以在提供protected或者public的accessor方法
7,很多函數都會需要創建新堆對象,用std::auto_ptr或者boost::shared_ptr吧
re: 關于兩個編譯選項 MD 和 MT Arcrest 2006-06-30 15:15
2005的Debug運行最近總是提示找不到MSVCR80D.dll,但是Release版本卻能找到,樓上的兄弟可知道怎么回事
后來把本來在Assembly下面的相關的文件拷貝到System32目錄下面,報錯好像是side by side 什么的,無法執行,是不是和manifest有關
如何解決?
謝了先