首页 新闻 安徽 体育 财经 黄梅 旅游 军事 娱乐 法治 教育 伊人 健康
繁体中文
 IT 彩信 读书 汽车 演艺 音乐 徽商 书库 邮件 论坛 贺卡 相册 交友
简体中文
精彩图库 业界动态 观察分析 手机数码 电脑教室 软件下载 游戏人间 本地市场
精彩推荐
v火星快车拍摄照片发现火星表面巨大冰冻海洋
v互联网冲击电视 网站虚拟春晚叫板央视春晚
v英特尔64位桌面处理器面世 最低售价224美元
v微软对非正版用户关闭MSN大门 用户转投QQ
vIBM推新PC安全技术 可跟踪并找回丢失笔记本
v诺基亚26万色百万像素智能手机6681曝光
v诺基亚展出新款3G百万像素智能手机6680
vPS2版《铁拳5》角色特殊造型观赏
vXBOX版《虚幻竞技场2》华丽新画面
精彩图片
  您当前的位置 :IT地带 > 电脑教室 > 程序设计 正文
C++中建立对象间消息连接的系统方法

中安网  2005-02-24 15:21

  天极yesky2月23日报道 用过C++进行过面向对象程序设计的用户都知道,程序中的对象很少单独存在。不考虑对象间的相互作用几乎是不可能的。所以,标识对象间的关系或建立对象间的消息连接是面向对象程序设计的一项重要任务。本文着重从C++程序设计的角度,提出一种建立对象间消息连接的实用方法。如果你想详细了解面向对象程序设计技术,请参阅有关专著。

  大家都知道对象是数据和方法的封装体。在C++中,它们分别表现为数据成员和成员函数。程序设计者通过执行对象的各种方法,来改变对象的状态(即改变对象的属性数据)。从而使该对象发生某些“事件”。当一对象发生某事件时,它通常需向其它相关对象发送“消息”,请求它们作出一些处理。这时,发生事件并向其它对象请求处理的对象被称为“事件对象”,而处理事件的对象被称为“回调对象”。回调对象对事件的处理称为“回调函数”。

  在C++中,这一过程相当于:当事件对象发生事件时,调用回调对象的某些成员函数。通常的作法是回调对象向事件对象传递对象指针。但这种方法不通用。为了减少程序设计的工作量,本文提出一种建立对象间消息连接的系统方法。它的思路是:将“事件发生→请求处理→执行处理”这一过程抽象成一个“回调”(CallBack)类。通过继承,用户可以轻松获取建立对象间消息连接的机制。

  一、回调类的数据结构及其成员函数

  本文提出的CallBack类支持三种回调函数。它们是:回调对象中的成员函数,属于回调类的静态成员函数和普通的C函数。CallBackle类中包含一回调函数表callBackList。它用于记录事件名称,指向回调函数及回调对象的指针。该表的每一个节点为一个事件记录EventRecord。每个事件记录包含三个域:事件名指针eventName,指向回调对象的指针pointerToCBO,指向回调函数的指针pointerToCBF或pointerToCBSF(其中,pointerToCBF指向回调对象的成员函数,pointerToCBSF指向回调类的静态成员函数或普通函数。它们同处于一共用体内)。CallBack类所提供的回调机制是这样的:在事件对象上注册回调对象中的回调函数;当事件发生时,事件对象在其回调表中检索并执行回调函数。从而使二者的消息连接得以建立。(关于该类的具体实现,请参阅文后所附的程序清单)回调对象

  [1]  [2]  [3]  [4]  下一页
编辑: 丁毅
 ∷【相 关 报 道】∷
-Linux上搭建C/C++IDE开发环境   05-02-06 13:00
-【图文】使用VC++ ATL实现Office的COM插件   05-02-01 15:16
-【图文】利用C++模板编写的序列化框架   05-01-24 14:32
-水滴石穿C语言之代码检查工具   04-12-28 11:13
-Linux下C开发环境的构成和安装   04-12-15 13:55
 

中国安徽在线网站(中安在线)版权所有 未经允许 请勿复制或镜像
皖ICP证 030106号