终于知道为什么COM中没有属性,只有方法了 接口和 pure virtual function很相似 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 COM与C++的封装有所不同COM为保持接口的稳定,把属性的封装边界定为组件模块,对于对象的用户是不可见的C++的封装是语意上的封装,对于对象的用户是可见的 不是吧,这么解释?同意wagxm(大头) 属性,public的成员变量我理解为同一个意思我的例子中的myid是public 的 方法也是public的总之,public的 总之,public的 总之,public的 总之,public的 在son类的对象中有两个myidCString 的初始化当然是空的你试一下son m_Son;m_Son.myid = "Son";m_Son.parent::myid = "Parent";就知道怎么回事了 如何通过parent的指针访问 son的myid??? 所以说 COM中不用属性,而用方法,对吗?因为COM中就是利用parent指针访问son方法,当然,也需要得到属性所以有很多get**(),set**()方法。 当然不是这么说,COM对象和C++对象一样是通过属性区分彼此的COM对象也有属性,但是COM接口的定义是不包含数据成员的 COM是规范,不一定要用继承接口的方法来实现COM对象例如,MFC是用嵌套多个类对象来实现COM对象的因此,在客户端得到的接口并不一定就是COM对象的父类指针类型MFC中COM对象是用CCmdTarget做为父类的 在COM中接口被定义为包含一组函数的数据结构,这和我们平时在C++中所说的“父类接口”有所不同。用C++语言描述COM接口时,同样不能包含数据成员,因为接口用抽象类(或结构)定义只有一个数据成员pVtbl(虚函数表指针)否则会使接口尺寸变大;如果接口中有其它数据成员,那么设想在不同进程中的情况就知道这样的数据是没用的(不能通讯,跨进程地址失效)而接口成员函数则不同,可以通过列集和散集来通讯; http://www.csdn.net/expert/topic/464/464120.shtm帮帮我吧(网吧管理软件) MFC打印问题 登录时的消息 求互刷IP流量软件的原理.... 求助,椭圆时钟的钟点布局。 大家谈谈用UNICODE编程在程序中具体有什么不同 关于throw 的疑问? 新方法添加失败 指针的奇怪问题: 请问怎么给按钮加外边框? 请问如何实现基于对话框的打印和预览,谢谢! 请问:如何通过程序给几台机器校正时间,使其保持完全一致? 如何隐藏任务?(在任务管理器中不可见)
COM为保持接口的稳定,把属性的封装边界定为组件模块,对于对象的用户是不可见的
C++的封装是语意上的封装,对于对象的用户是可见的
总之,public的
总之,public的
总之,public的
CString 的初始化当然是空的你试一下
son m_Son;
m_Son.myid = "Son";
m_Son.parent::myid = "Parent";
就知道怎么回事了
所以有很多get**(),set**()方法。
COM对象也有属性,但是COM接口的定义是不包含数据成员的
例如,MFC是用嵌套多个类对象来实现COM对象的
因此,在客户端得到的接口并不一定就是COM对象的父类指针类型
MFC中COM对象是用CCmdTarget做为父类的
用C++语言描述COM接口时,同样不能包含数据成员,
因为接口用抽象类(或结构)定义只有一个数据成员pVtbl(虚函数表指针)
否则会使接口尺寸变大;
如果接口中有其它数据成员,那么设想在不同进程中的情况就知道
这样的数据是没用的(不能通讯,跨进程地址失效)
而接口成员函数则不同,可以通过列集和散集来通讯;