C++实现句柄类(一)

C++学习笔记之实现句柄类

寒假看了C++沉思录和C++程序设计语言,一直对类的功能分类相关章节记忆犹新,感到这些都是C++ OOP思想的精髓。

昨天突然想到为什么不实践一下,写一个简单的句柄类呢?

C++初学者可能不知道句柄类为何物。其实说白了,句柄类就是为了消除来自同一个基类的派生类的操作差异性而建立的一个中间层,它管理了这些派生类的指针,消除了各种派生类建立和使用的不一致性。

我为了建立句柄类,首先要找一个适合并且容易用OOP实现的东西,后来就想到了GUI,于是我就设计了一个按钮的类族,建立了三个简单的类,分别为Button类,CommandButton类,ImageButton类。Button类是所有按钮类的基类,而CommandButtonImageButton都继承自Button类。这些类的关系如下图所示:

Button
    |
    -    CommandButton
    -    ImageButton

其中Button类的接口和实现在 button.h 中。
CommandButton类的接口和实现在 cmdbtn.h 中。
ImageButton类的接口和实现在 imgbtn.h 中。

然后呢,我就设计了一个叫做ButtonHandle的类,顾名思义,也就是Button的句柄类了。
ButtonHandle的接口在 btnhandle.h 中,实现在 btnhandle.cpp 中。

程序使用 g++ 4 在 Slackware Linux 13 下编译通过,还使用 MinGW g++ 3.4.5 在 Windows 7 下编译通过。

废话不说了,直接贴代码。
 

button.h

button.h

cmdbtn.h

cmdbtn.h

imgbtn.h

imgbtn.h

btnhandle.h


 

btnhandle.cpp

 

main.cpp(测试程序)


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值