原创 boost::weak_ptr和enable_shared_from_this
boost::weak_ptr和enable_shared_from_this shared_ptr在我的實踐中使用很廣,在接口層面上,我基本都會默認的使用shared_ptr.而weak_ptr則很
原创 covariant return type and boost::shared_ptr
covariant return type and boost::shared_ptr covariant return type翻譯爲協變返回值,意義就是在虛函數的返回值上,可以使用子類對象,而不必是基類對象.下面是一個例子: st
原创 C++ enum類型的一個更好的用法
C++ enum類型的一個更好的用法 enum 類型是c++的一個基本的類型,用於聲明可以枚舉的常量.相對於C#的enum, c++的enum有幾個缺陷: 1 不支持組合特性,也即FlagsAttribute屬性;
原创 翻譯的藝術-bind
翻譯的藝術-bind 裘宗燕老師對bind的論述(http://www.is.pku.edu.cn/%7Eqzy/books/cppl/words.htm): bind:目前的主要譯法有“約束”和“綁定”(還有譯爲“聯編”,這個譯法太
原创 blog移植到http://zadecn.spaces.live.com
blog移植到http://zadecn.spaces.live.com
原创 Architecture & Framework
Architecture不是軟件,是關於軟件如何設計的重要決策Architecture不關心所有的決策,而只是關心其中的重要決策:即關係各個部分(模塊)的靜態關係(功能劃分)和動態關係(模塊交互)Arc
原创 ADO.NET數據庫訪問的一個缺陷和補救思路
ADO.NET數據庫訪問的一個缺陷和補救思路 在C#中,訪問數據庫的典型方法是:// connect to my local server, northwind db string connectionS
原创 翻譯的藝術-public/private
翻譯的藝術-public/private 計算機技術詞彙的翻譯並不太難,但是要翻譯的很好就不是很容易了。前人有過標準,“信、達、雅”。對於計算機技術詞彙,我的理解是:“信”就是要準確,“達”就是要儘量把作者的原意表達全面,“雅”就是
原创 實施軟件開流程控制的前提
軟件開發的規模進入到一定的程度的時候, 需要軟件開發流程來保證軟件開發的可控性. CMM, RUP, ISO9001, 這些都是耳熟能詳的流程控制方法, 但是能夠成功應用這些方法的軟件企業和單位並不是很多; 而且, 很多的軟件企業和公司並
原创 類成員變量的命名
在類的成員函數當中,可能需要訪問兩種類型的變量, 局部變量和成員變量, 例如:class MyClass{ private int m_var; //成員變量命名方式1 private int _var1; //成員變量命名方式2 pr
原创 中國計算機水平低是因爲工程水平差
前幾天在計算所聽工程中心主任的報告,主任的一句話給我的印象非常的申:中國計算機水平差,在很大的程度上不是計算機的理論水平比較低,而是計算機的工程水平比較差。換個說法,就是說中國的計算機理論知識還不錯,但是計算機的技術水平比
原创 C#的資源回收
C#的GC機制,使得在C#中內存自動管理,在一定的程度上,這省去了程序員的很多麻煩,這可以看成是一個很大的進步。 在C++中,有一條很重要的原則,即資源的獲取就是初始化(“resource acquisition is initializ
原创 編程語言的終極夢想
相對於C語言, C++語言更加靈活, 因爲它是一種OOP的語言. C#更加靈活, 因爲它還支持垃圾回收, 定製屬性, 匿名方法. Ruby語言是一種動態語言, 它比C#更加的靈活. 每一種語言都有自己的特點
原创 static_cast、dynamic_cast、reinterpret_cast、和const_cast
關於強制類型轉換的問題,很多書都討論過,寫的最詳細的是C++ 之父的《C++ 的設計和演化》。最好的解決方法就是不要使用C風格的強制類型轉換,而是使用標準C++的類型轉換符:static_cast, dyn
原创 c++引用的弊端-引用不如指針
c++中引入引用的概念是爲了操作符重載(見c++的設計與演化),scott meyers在其相關的Effective c++中也對引用和指針有過論述.在我剛剛接觸引用的概念以後,我認爲這是一個極好的東西,在函數參數和成員變量中大量的使用他