体验C++中接口与实现分离的技术 (1)

上一篇 / 下一篇  2008-05-04 13:53:36

在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与实现分离的技术
9L CYc6r%`"Y0ITPUB个人空间fW ~ V5_i
  下面用一个最简单的例子来说明。
hK6G2]A B0ITPUB个人空间k5px&fF*yw([5~
  类ClxExp是我们要导出的类,其中有一个私有成员变量是ClxTest类的对象,各个文件内容如下:
G L9n:U6H3x0
#sL'? K-E5if;y0  lxTest.h文件内容:
\L;k(Tz)M.Y0
o4I |+?$U$fh0class ClxTest
&V6M sn W?4d0{
W2blC7Gd6{~0 public:ITPUB个人空间'H,Ym5OlyeaB)R
  ClxTest();
7THT@ 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.JTknHu0ITPUB个人空间o#ebF'GcG
#includeITPUB个人空间"HBN"s5b)?y1E XX
using namespace std;
9L]fZ3~ c/k0ITPUB个人空间)B)ld3E4e
ClxTest::ClxTest()ITPUB个人空间%^D A%nE k
{}ITPUB个人空间SU7g%y|3N pW

B8L$ZRB]0ClxTest::~ClxTest()
h2U6j_ X v\'s _m0{}
8y5hhg j0ITPUB个人空间+~M-[A1L5ig
void ClxTest::DoSomething()
4^M'H:oUF'Nl0{
S gV*Y:n/X b0 cout << "Do something in class ClxTest!" << endl;ITPUB个人空间;}.}fr/b-O+aOW
}ITPUB个人空间 _'et$oNt2yfC*Z

5Pb;`f*qMop5iI(|0////////////////////////////////////////////////////////////////////////////ITPUB个人空间:@K Z uQKn
  lxExp.h文件内容:
L&N(RI6LF3R0ITPUB个人空间 ?7?d1^rP
#include "lxTest.h"
3tHyg$X+sF+O n.C:z0ITPUB个人空间OG i(`kF-D.^
class ClxExpITPUB个人空间 ey'YWvR _6fB
{
'ym3He7B/f#ua!q0 public:
/ti],v6X0  ClxExp();ITPUB个人空间:H!~.q.Tpk'XP
  virtual ~ClxExp();
)h:?v3[%f&W0  void DoSomething();
"^AJ/[6O(X8@7@0 private:ITPUB个人空间c)_)T-EVjzB,e3i
  ClxTest m_lxTest;ITPUB个人空间L [$Mz)QP
  void lxTest();
!OZlYG0};

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-10-12  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 54224
  • 日志数: 3708
  • 建立时间: 2008-04-12
  • 更新时间: 2008-08-15

RSS订阅

Open Toolbar