体验C 中接口和实现分离的技术 (2)
2008-02-23 05:41:18来源:互联网 阅读 ()
#include "lxImplement.h" ClxImplement::ClxImplement() {} ClxImplement::~ClxImplement() {} void ClxImplement::lxTest() { m_lxTest.DoSomething(); } void ClxImplement::DoSomething() { lxTest(); } |
然后,修改类ClxExp。
修改后的lxExp.h文档内容:
// 前置声明 class ClxImplement; class ClxExp { public: ClxExp(); virtual ~ClxExp(); void DoSomething(); private: // 声明一个类ClxImplement的指针,无需知道类ClxImplement的定义 ClxImplement *m_pImpl; }; |
修改后的lxExp.cpp文档内容:
// 在这里包含类ClxImplement的定义头文档 #include "lxImplement.h" ClxExp::ClxExp() { m_pImpl = new ClxImplement; } ClxExp::~ClxExp() { delete m_pImpl; } void ClxExp::DoSomething() { m_pImpl->DoSomething(); } |
通过上面的方法就实现了类ClxExp的接口和实现的分离。请注意两个文档中的注释。类ClxExp里面声明的只是接口而已,而真正的实现细节被隐藏到了类ClxImplement里面。为了能在类ClxExp中使用类ClxImplement而不include头文档lxImplement.h,就必须有前置声明class ClxImplement,而且只能使用指向类ClxImplement对象的指针,否则就不能通过编译。
在发布库文档的时候,我们只需给用户提供一个头文档lxExp.h就行了,不会暴露类ClxExp的任何实现细节。而且我们对类ClxTest的任何改变,都无需再给用户更新头文档(当然,库文档是要更新的,但是这种情况下用户也不用重新编译!)。这样做更有一个好处就是,能够在分析阶段由系统分析员或高级程式员来先把类的接口定义好,甚至能够把接口代码写好(例如上面修改后的lxExp.h文档和lxExp.cpp文档),而把类的具体实现交给其他程式员研发。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇: VC 实现广告窗口自动关闭
下一篇: 体验C 中接口和实现分离的技术 (1)
- 体验C 中接口和实现分离的技术 (1) 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash