顯示具有 oo 標籤的文章。 顯示所有文章
顯示具有 oo 標籤的文章。 顯示所有文章

2011年3月3日 星期四

friend class

最近有個需求,必須寫一個 Library 供合作廠商使用,
Libray 的內容有關於公司的機密,所以不能任意讓其他人存取,

2010年9月7日 星期二

2010年9月6日 星期一

has-a 的 private 繼承觀念

以下這段程式使用了 public 繼承表示一種 is-a 的關係,吉娃娃繼承了狗,所以吉娃娃是狗的一種。

單一繼承的種類

從事編程的工作也有兩年多了,類別繼承 10 次有 9 次是使用公用繼承,也就是使用 public 關鍵字的繼承,原因無他,純粹是因為 public 繼承最方便。

2010年8月30日 星期一

繼承與物件建構、解構注意事項

繼承時有幾點重要的注意事項,例如建構、解構的順序、方式、動態記憶體配置等都是需要注意的地方。

pure virtual function 與 abstract base class

有些時後會發生一種情況,我們必須創立許多類似的類別,而這些類別必須有某些相同且必要的條件,同樣以遊戲為例,例如資深工程師制訂了 NPC 的規格,各工程師照著規格實作遊戲企劃人員構想的各種 NPC 這種情況可以用到 virtual function 來解決各衍生類別的同名異式,但無法要求衍生類別一定要實作某些類別的內容,這時可以利用 "pure virtual function(純虛擬函式)" 例如:

2010年8月25日 星期三

polymorphic 與 virtual關鍵字

物件導向設計中有一項精華就是 polymorphic(同名異式),以 MFC 為例,每個元件其實最底層都是 CWnd (視窗),CButton 與 CEdit都繼承了 CWnd,兩都也都有 SetWindowText(),但 CButton 會顯示在按鍵的中間,CEdit 會顯示在框框中,這就是 polymorphic 的表現。

2010年8月20日 星期五

Class Default Constructor

假設有個類別T


class T
{
};
main()
{
  T tObj;
  T *tObj = new T;
  T tObj = T();
}

template 樣板函式

若我們要寫一個交換兩個值的 function,可能吃整數、浮點數、字串、該怎麼辦呢?最簡單的方法就是用 overloading 寫好幾個,另一種方法就是寫樣板函式請前置處理器幫忙。

Inline function、Marco

function 這種東西很好用,但呼叫 function 時都是有成本的,例如

2010年8月17日 星期二

Multi Thread 下的 function 設計條件

在開發 Multi Thread 的軟體時,所有可能被 Thread 呼叫的 function 都要盡量設計成 Reentrant,這可以提供最安全的執行環境與結果。

Singleton 的 C++ 範例

Singleton 翻譯作 "獨身" 對於取代全域物件,Singleton 是個安全又方便的方法。