#include
//除了建構函式,其它成員函式都宣告為虛函式
class lockableobject
virtual ~lockableobject(){}
virtual void lock() = 0;
virtual void unlock() = 0;
private:
critical_section m_critsect;
};//從lockableobject派生而來的criticalsection
class criticalsectionv2 :public lockableobject
;criticalsectionv2::criticalsectionv2()
criticalsectionv2::~criticalsectionv2()
void criticalsectionv2::lock()
void criticalsectionv2::unlock()
//乙個極安全又簡單無比的lock
class lockv2
;lockv2::lockv2(lockableobject* plockable)
lockv2::~lockv2()
//criticalsectionv2和lockv2,彼此間互有協定。
//以安全又簡單無比的lock重寫string類
class stringv2
;stringv2::stringv2()
stringv2::~stringv2()
void stringv2::set(char *str)
int stringv2::getlength()
物件導論之伴隨多型的可互換物件
伴隨多型的可互換物件 在處理型別的層次結構時,經常想把乙個物件不當作它所屬的特定型別來對待,而是將其當作其基類的物件來對待。這使得人們可以編寫出不依賴於特定型別的 在 幾何形 的例子中,方法操作的都是泛化 generic 的形狀,而不關心它們是圓形 正方形 三角形還是其他什麼尚未定義的形狀。所有的幾...
建立可維護 可擴充套件的 XML 格式
xml 是一種交換結構化文件和資料的通訊格式。人們經常隨意地在開發過程中臨時決定選擇 xml 格式,而沒有提前計畫或設計。只有提前設計好正確的 xml 格式,才能滿足通訊各方的要求。否則就不得不反覆地修改。了解如何設計一種不經常進行修改的格式,足夠敏捷,不需要徹底修改而僅需填加少許擴充套件就能適應新...
建立可拖動控制項
using system using system.windows.forms using system.drawing namespace controlcollect.web.controls endregion region 建構函式 構造控制項拖動物件 需要拖動的控制項 public con...