日期:2011-03-22 13:55:00 来源:本站整理
C++中接口与实现别离的技术[VC/C++编程]
本文“C++中接口与实现别离的技术[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在用C++写要导出类的库时,我们常常只想表露接口,而躲藏类的实现细节.也就是说我们供应的头文件里只供应要表露的大众成员函数的声明,类的其他全部信息都不会在这个头文件里面显示出来.这个时刻就要用到接口与实现别离的技术.
下面用一个最简单的例子来阐明.
类ClxExp是我们要导出的类,此中有一个私有成员变量是ClxTest类的对象,各个文件内容以下:
lxTest.h文件内容:
class ClxTest
{
public:
ClxTest();
virtual ~ClxTest();
void DoSomething();
};
lxTest.cpp文件内容:
#include "lxTest.h"
#include <iostream>
using namespace std;
ClxTest::ClxTest()
{}
ClxTest::~ClxTest()
{}
void ClxTest::DoSomething()
{
cout << "Do something in class ClxTest!" << endl;
}
////////////////////////////////////////////////////////////////////////////
lxExp.h文件内容:
#include "lxTest.h"
class ClxExp
{
public:
ClxExp();
virtual ~ClxExp();
void DoSomething();
private:
ClxTest m_lxTest;
void lxTest();
};
lxExp.cpp文件内容:
#include "lxExp.h"
ClxExp::ClxExp()
{}
ClxExp::~ClxExp()
{}
// 其实该办法在这里并没有必要,我这样只是为了阐明调用关系
void ClxExp::lxTest()
{
m_lxTest.DoSomething();
}
void ClxExp::DoSomething()
{
lxTest();
}
为了让用户能利用我们的类ClxExp,我们必须供应lxExp.h文件,这样类ClxExp的私有成员也表露给用户了.并且,仅仅供应lxExp.h文件是不够的,因为lxExp.h文件include了lxTest.h文件,在这种情形下,我们还要供应lxTest.h文件.那样ClxExp类的实现细节就全表露给用户了.别的,当我们对类ClxTest做了改正(如增添或删除一些成员变量或办法)时,我们还要给用户更新lxTest.h文件,而这个文件是跟接口无关的.假如类ClxExp里面有很多像m_lxTest那样的对象的话,我们就要给用户供应N个像lxTest.h那样的头文件,并且此中任何一个类有窜改,我们都要给用户更新头文件.还有一点就是用户在这种情形下必须举行重新编译!
以上是“C++中接口与实现别离的技术[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论