体验C++中接口与实现分离的技术 (1)
上一篇 /
下一篇 2008-05-04 13:53:36
在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的
技术。
9L
CYc6r%`"Y0ITPUB个人空间fW~V5_i 下面用一个最简单的例子来说明。
hK6G2]A B0ITPUB个人空间 k5px&fF*yw([5~ 类ClxExp是我们要导出的类,其中有一个私有成员变量是ClxTest类的对象,各个文件内容如下:
GL9n:U6H3x0#sL'?
K-E5if;y0 lxTest.h文件内容:
\L;k(Tz)M.Y0o4I |+?$U$fh0class ClxTest
&V6M sn W?4d0{
W2blC7Gd6{~0 public:
ITPUB个人空间'H,Ym5OlyeaB)R ClxTest();
7TH T@w/h)htj0 virtual ~ClxTest();
ITPUB个人空间r$R0C%@8[{#x void DoSomething();
ITPUB个人空间)G#}xRK%Pe};
oj,K4Moz0 lxTest.cpp文件内容:
ITPUB个人空间2zvM!r,e KrT8P$r"t0#include "lxTest.h"
+d.JTkn Hu0ITPUB个人空间o#e bF'GcG#include
ITPUB个人空间"HBN"s5b)?y1E
XXusing namespace std;
9L]fZ3~c/k0ITPUB个人空间)B)ld3E4eClxTest::ClxTest()
ITPUB个人空间%^ DA%nE
k{}
ITPUB个人空间SU7g%y|3NpWB8L$ZRB]0ClxTest::~ClxTest()
h2U6j_ Xv\'s _m0{}
8y5hhg
j0ITPUB个人空间+~M-[A1L5igvoid ClxTest::DoSomething()
4^M'H:oUF'Nl0{