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)在它的实现里广泛使用了模板技术。

你可能感兴趣的:(com,C++模板)