ATL组件实现

For example:

1 class ATL_NO_VTABLE CMath :

2   public  CComObjectRootEx<CComSingleThreadModel>

3   public CComClass<CMath, &CLSID_Math>

4   public IMath,

5   public IAdvancedMath

6 {

7     ....

8 };


从CComObjectRootEx得到IUnknown支持,从CComCoClass得到类工厂支持,从IMath等获得方法特征

ATL_NO_VTABLE是为了压缩代码长度的一个尝试(推迟生成Vtable),实现类仍然是一个抽象类,实例化时才生成Vtable

ATL框架完全是为了性能着想,性能是压倒一切的因素

类工厂是为了支持外部创建

你可能感兴趣的:(实现)