C++中建立對象間消息連接的系統方法--IT地帶
 首頁 新聞 安徽 體育 財經 黃梅 旅游 軍事 娛樂 法治 教育 伊人 健康
繁體中文
 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號