COM组件学习笔记--C++模板

来源:互联网 发布:淘宝设置发货地 编辑:程序博客网 时间:2024/05/29 13:48

一、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.基于模板的简单堆栈类:

TemplateClass 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;};TemplateVoid Stack::Push( T value){    m_data[m_sPos++] = value;}TemplateT Stack::Pop(){   return m_data[--m_sPos];}

三、总结:

  1. C++模板技术是C++语言的一个新添加的特性。
  2. 函数模板提供了一种编写类型安全、可重用代码的优良机制。
  3. 类模板提供了一种类似于预处理器的替换技术,从而允许你编写可复用的、类型安全的类。
  4. 活动模板库(ATL)在它的实现里广泛使用了模板技术。
0 0
原创粉丝点击