接口和 pure virtual function很相似

解决方案 »

  1.   

    COM与C++的封装有所不同
    COM为保持接口的稳定,把属性的封装边界定为组件模块,对于对象的用户是不可见的
    C++的封装是语意上的封装,对于对象的用户是可见的
      

  2.   

    不是吧,这么解释?同意wagxm(大头) 
      

  3.   

    属性,public的成员变量我理解为同一个意思我的例子中的myid是public 的
      

  4.   

    方法也是public的
    总之,public的
      

  5.   

    总之,public的 
    总之,public的 
    总之,public的 
      

  6.   

    在son类的对象中有两个myid
    CString 的初始化当然是空的你试一下
    son m_Son;
    m_Son.myid = "Son";
    m_Son.parent::myid = "Parent";
    就知道怎么回事了
      

  7.   

    如何通过parent的指针访问 son的myid???
      

  8.   

    所以说 COM中不用属性,而用方法,对吗?因为COM中就是利用parent指针访问son方法,当然,也需要得到属性
    所以有很多get**(),set**()方法。
      

  9.   

    当然不是这么说,COM对象和C++对象一样是通过属性区分彼此的
    COM对象也有属性,但是COM接口的定义是不包含数据成员的
      

  10.   

    COM是规范,不一定要用继承接口的方法来实现COM对象
    例如,MFC是用嵌套多个类对象来实现COM对象的
    因此,在客户端得到的接口并不一定就是COM对象的父类指针类型
    MFC中COM对象是用CCmdTarget做为父类的
      

  11.   

    在COM中接口被定义为包含一组函数的数据结构,这和我们平时在C++中所说的“父类接口”有所不同。
    用C++语言描述COM接口时,同样不能包含数据成员,
    因为接口用抽象类(或结构)定义只有一个数据成员pVtbl(虚函数表指针)
    否则会使接口尺寸变大;
    如果接口中有其它数据成员,那么设想在不同进程中的情况就知道
    这样的数据是没用的(不能通讯,跨进程地址失效)
    而接口成员函数则不同,可以通过列集和散集来通讯;
      

  12.   

    http://www.csdn.net/expert/topic/464/464120.shtm帮帮我吧(网吧管理软件)