| 网站首页 | 范文 | 演讲致词 | 汇报体会 | 总结报告 | 公文方案 | 领导讲话 | 党建工会 | 论文 | 文档 | 书信 | 
您现在的位置: 范文大全网 >> 论文 >> 计算机论文 >> 正文 用户登录 新用户注册
C++类的动态组件化技术           
C++类的动态组件化技术

atlassert(succeeded(hresult)); \

hresult = pcomobj-> \

queryinterface(iid_idefine, (void **)ppinterface); \

atlassert(succeeded(hresult)); \

if (hresult == s_ok) \

pcomobj->link2cppobj(pcppobj, *ppinterface); \

}\

}


4. 接口的继承与多态
c++类的继承应用十分广泛,动态化后的组件应该保留原c++类之间的继承关系。在我们的技术方案中,c++类和接口一一对应,c++类的继承关系也应该体现在各个接口上,如下图所示:


4.1. 支持继承的系列atl模板基类
实现接口继承的实质是为派生atl类添加基接口,而为一个atl类添加接口的实质则是:

l 修改idl文件,体现接口的继承关系

l 在atl类中提供接口实现

修改idl文件很简单,只需要更改派生接口的基接口即可。lOcALhOst在atl类中添加基接口的实现倒颇费思量,我们的做法是:

l 扩展atl模板基类的意义,每一个atl组件类都对应一个模板基类,都从该模板基类派生

l 派生类的模板基类,从基类的模板基类中派生;ccpp2atltemplatebase是模板派生树的根节点,所有的模板都派生自ccpp2atltemplatebase

l 所有的接口方法,都在对应的模板基类中实现

atl派生类继承自它对应的模板基类,这个模板基类又继承自atl基类对应的模板基类,而在atl基类的模板基类中提供了基接口的实现。所以,atl派生类最终继承了基接口的实现。c++类、atl类、各模板基类的继承关系如下图所示:

假定ibaseitf是基接口,iinherititf是派生接口。atl基类对应的模板基类定义如下:

/****************************************************************************

模板类catlbaseitf,提供了ibaseitf的实现,

用于将ibaseitf接口作为基接口共供其它接口继承

****************************************************************************/

template <class t, class q, const iid* piid, const guid* plibid = &ccommodule::m_libid>

class atl_no_vtable catlbaseitf : public ccpp2atltemplatebase<t, q, piid, plibid>

{

public:

// 基接口方法“basefunc”,在此模板类内实现

stdmethod(basefunc)()

{

m_pcppobj->basefunc();

return s_ok;

}

};

atl派生类对应的模板基类定义如下:

/****************************************************************************

模板类catlinherititf,继承了基接口ibaseitf方法的实现,

同时提供了iinherititf的实现,可以将iinherititf接口作为基接口共供其它接口继承

****************************************************************************/

template <class t, class q, const iid* piid, const guid* plibid = &ccommodule::m_libid>

class atl_no_vtable catlinherititf : public catlbaseitf<t, q, piid, plibid>

{

public:

// 派生接口方法“inheritfunc

[1] [2] [3] 下一页

  • 上一个论文:

  • 下一个论文:


  • 看了《C++类的动态组件化技术》的网友还看了:
    [免费范文]LabWindows/CVI的应用特点
    [今日更新]网页制作DIV+CSS工作心得体会
    [今日更新]<<重阳之夜>>初中生作文
    [今日更新]农林牧渔|林业造纸
    [今日更新]C++运算符理解记忆顺口溜
    [法律论文]国内外黑社会(性质)犯罪比较分析---试答涉黑犯
    [企业管理]基于|模糊综合评价法|的并购重组|企业文化|风险
    [企业管理]从“四大”的价值观|看优秀财务工作者|应具备的素
    [企业管理]基于SPSS|的桐庐旅游市场|分析
    [今日更新]媒体语言“××门”的语法化探析

    计算机论文
    普通论文浅谈青少年网络道德教育
    普通论文网络信息安全状况与可信计算
    普通论文计算机网络系统在制碱工业中的应
    普通论文计算机网络交际语中的性别差异
    普通论文浅析计算机软件项目管理中的需求
    普通论文浅谈在计算机网络系统上进行大学
    普通论文关于软件项目管理中人员管理方法
    普通论文面向对象的建模方法
    普通论文企业数据备份与恢复技术研究
    普通论文基于WinDis 32技术实现网络通信监
    普通论文PHP网站设计中信息安全防御的研究
    普通论文VB中创建超长时间计时器对象
    论文
    普通论文[经济论文]对财政学中政府非税收入
    普通论文[工程建筑]刚柔复合式路面结构特点
    普通论文[今日更新]音乐教育论文常用的论证
    普通论文[免费范文]接待工作自查情况汇报
    普通论文[企业管理]公共部门人力资源管理激
    普通论文[免费范文]农业产业化和企业文化建
    普通论文[企业管理]高校人事档案管理工作探
    普通论文[今日更新]浅谈自拟方巧治慢性附睾
    范文大全
    普通范文[朗诵节目]公司国庆晚会三句半
    普通范文[零八零一]-XX市处置大规模集体上访
    普通范文[范文大全]当前高体有关弹跳力的几
    普通范文[范文大全]2010毕业生求职信范文
    普通范文[实习报告]党员基层素质培训计划
    普通范文[范文大全]基层银企对账工作调研对
    普通范文[范文大全]某小学2011 “庆六一,展
    普通范文[范文大全]法制办2011年度工作总结
    演讲致词
    普通演讲[庆典致辞]在公安系统大练兵队列会操
    普通演讲[庆典致辞]母亲节寄语
    普通演讲[会议发言稿]教师节幼儿园老师发言稿
    普通演讲[节日祝福语]2011兔年迎春对联精选
    普通演讲[爱国演讲]中学生弘扬爱国主义演讲稿
    普通演讲[会议发言稿]青年获奖者在单位总结表彰
    工作范文
    普通公文方案[公文写作]县域人才队伍建设存在的问
    普通公文方案[公文写作]村官讲法--记#市学习社区居
    普通公文方案[合同范本]租赁经营合同(3)
    普通公文方案[公文写作]让企业文化形神合一
    普通汇报体会[征文演讲]三八妇女节教师演讲稿
    普通总结[工作总结]工作总结(纪检监察)
    普通党建工会[政府政务]在区高致病禽流感防控工作
    普通汇报体会[心得体会]纪律教育学习心得体会
    普通总结[工作计划]安全生产监督管理局2010年
    普通公文方案[公文写作]安全生产年终总结
    普通公文方案[公文写作]管理探讨:中国经销商八大
    普通公文方案[公文写作]副主任科员竞聘书