建立可互換的Locks

2021-07-04 03:51:11 字數 844 閱讀 4786

#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...