COM組件學習筆記--C++模板

一、COM技術

  1. COM是Mircosoft研製的一項系統級別的面向對象技術。
  2. COM提供的幾項特徵:
    • COM同語言無關性:程序開發者可以在VB、DELPHI等其他開發環境下重複使用C++模板;
    • COM提供了位置的透明性:這一性質使軟件模板可以在分佈式網絡環境下的任何位置上運行;
    • 標準的面向對象特徵:封裝、多態和繼承。
    • 版本升級的魯棒性。
  3. ATL與COM的關係:
    ATL的主要目的是創建小的、基於COM的軟件模塊,然後再把這些模塊組裝成大的應用程序。

  4. COM、OLE和ActiveX的關係:

    • COM是一個軟件交互操作標準(software-interoperability standard)
    • OLE、ActiveX是建立在軟件交互操作標準之上的高級別服務範例。
    • COM、OLE和ActiveX這些術語在某種程度上是可以互換的,也就是說他們具有緊密相關的功能和特性。

二、C++模板

1.簡單的MAX函數模板:

Template< class Type>
Type MAX( Type a , Type b )
{
   if( a > b )
      return a;
   else
      return b;
}

Compile-time:模板在類的級別上爲用戶提供了一個編譯時(omplie-time)的替換機制。通過在編譯的時候進行類型(和常量)替換,可以藉助模板建立通用型的類,使它不必智能操作某一指定的數據類型,而可以令它在類實現的時候根據用戶提供的數據類型進行調整。

2.基於模板的簡單堆棧類:

Template
Class Stack
{
Public:
   Stack()
   {
      m_sPos = 0;
   }
   ~Stack()
   {

   }

   Void Push( T value );
   T Pop();

   Bool IsEmpty()
   {
       return( m_sPos == 0);
   }
   Bool HasElements()
   {
       return(m_sPos != 0 );
   }
   Bool IsFull()
   {
       return(m_sPos == 100);
   }
   Private:
       T m_data[sSize];
       Short m_sPos;
};

Template
Void Stack::Push( T value)
{
    m_data[m_sPos++] = value;
}

Template
T Stack::Pop()
{
   return m_data[--m_sPos];
}

三、總結:

  1. C++模板技術是C++語言的一個新添加的特性。
  2. 函數模板提供了一種編寫類型安全、可重用代碼的優良機制。
  3. 類模板提供了一種類似於預處理器的替換技術,從而允許你編寫可複用的、類型安全的類。
  4. 活動模板庫(ATL)在它的實現裏廣泛使用了模板技術。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章