一、COM技術:
- COM是Mircosoft研製的一項系統級別的面向對象技術。
- COM提供的幾項特徵:
- COM同語言無關性:程序開發者可以在VB、DELPHI等其他開發環境下重複使用C++模板;
- COM提供了位置的透明性:這一性質使軟件模板可以在分佈式網絡環境下的任何位置上運行;
- 標準的面向對象特徵:封裝、多態和繼承。
- 版本升級的魯棒性。
ATL與COM的關係:
ATL的主要目的是創建小的、基於COM的軟件模塊,然後再把這些模塊組裝成大的應用程序。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];
}
三、總結:
- C++模板技術是C++語言的一個新添加的特性。
- 函數模板提供了一種編寫類型安全、可重用代碼的優良機制。
- 類模板提供了一種類似於預處理器的替換技術,從而允許你編寫可複用的、類型安全的類。
- 活動模板庫(ATL)在它的實現裏廣泛使用了模板技術。