遠(yuǎn)風(fēng)工作室
C++博客
|
首頁
|
發(fā)新隨筆
|
發(fā)新文章
|
聯(lián)系
|
聚合
|
管理
隨筆:92 文章:0 評論:72 引用:0
回調(diào)函數(shù)實現(xiàn)方式:函數(shù)指針與函數(shù)對象
被調(diào)用函數(shù)調(diào)用的外部函數(shù)成為回調(diào)函數(shù),windows程序中WndProc函數(shù)就是一個回調(diào)函數(shù)的典型形式。當(dāng)函數(shù)不在同一文件當(dāng)中(比如動態(tài)庫)時,要調(diào)用其他程序中的函數(shù)就只有才用回調(diào)的方式。回調(diào)函數(shù)一般采用函數(shù)指針或者函數(shù)對象的形式實現(xiàn)。
(1)函數(shù)指針:
int
A(
char
*
p);
//
回調(diào)函數(shù)
typedef
int
(
*
CallBack)(
char
*
p);
//
聲明CallBack類型的函數(shù)指針
CallBack myCallBack;
//
定義函數(shù)指針變量
myCallBack
=
A;
//
賦值,得到函數(shù)A的地址
B(A,
5
);
//
調(diào)用B函數(shù)
void
B(CallBack lpCall,
int
num)
{
//
B自己的語句
lpCall(“Hello”);
//
B自己的語句
}
(2)函數(shù)對象:
函數(shù)對象是重載了operator()操作符的類對象,與普通的函數(shù)行為類似。一般情況下用函數(shù)對象優(yōu)于函數(shù)指針,主要因為:
第一,函數(shù)對象具有封裝性,可以在不改動外部接口的情況下修改內(nèi)部操作;
第二,函數(shù)對象可以通過數(shù)據(jù)成員存儲先前調(diào)用結(jié)果,而普通函數(shù)只能通過靜態(tài)變量等方式實現(xiàn);
第三,函數(shù)對象可以實現(xiàn)內(nèi)聯(lián)調(diào)用,加快程序速度。
class
CallBack
{
public
:
int
operator
()(
int
num)
//
重載()操作符
{
//
…………………………..
}
}
void
B(CallBack call,
int
num)
//
定義B函數(shù)
{
//
B自己的語句
call(num);
//
B自己的語句
}
B(CallBack(),
5
);
//
調(diào)用B函數(shù)
發(fā)表于 2009-08-28 21:58
遠(yuǎn)風(fēng)
閱讀(639)
評論(0)
編輯
收藏
引用
所屬分類:
C/C++基礎(chǔ)
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
相關(guān)文章:
C/C++小結(jié)雜燴
32位系統(tǒng)中VC++可識別類型
使用MessageBox進行多線程調(diào)試
const在C和C++中的不同
數(shù)據(jù)存儲類型:auto/static/register/extern
string用法總結(jié)
類的特殊大小情況
常用Win IDE庫函數(shù)
C/C++小結(jié)雜燴
LIB和DLL的區(qū)別與使用
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
<
2010年1月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
留言簿
(3)
給我留言
查看公開留言
查看私人留言
隨筆分類
(93)
ACM(5)
(rss)
C/C++基礎(chǔ)(20)
(rss)
Linux編程(16)
(rss)
MFC(7)
(rss)
MySQL(2)
(rss)
OPNET仿真(11)
(rss)
PHP(13)
(rss)
Python(3)
(rss)
STL(4)
(rss)
Web技術(shù)(2)
(rss)
Windows管理(3)
(rss)
數(shù)據(jù)結(jié)構(gòu) / 算法(7)
(rss)
收藏夾
(2)
C/C++基礎(chǔ)(1)
(rss)
數(shù)據(jù)結(jié)構(gòu) / 算法(1)
(rss)
搜索
積分與排名
積分 - 331642
排名 - 73
最新評論
1.?re: makefile和make規(guī)則
可以評論么
--馮智浩
2.?re: PHP調(diào)用外部程序的方法
大的as打算阿達的
--碩大的
3.?re: LIB和DLL的區(qū)別與使用
太贊,收藏一下,謝謝
--mymimi1988
4.?re: LIB和DLL的區(qū)別與使用
好文,好內(nèi)容;
--wsdxyz
5.?re: LIB和DLL的區(qū)別與使用
寫的非常詳細(xì),感謝。
--Forward
6.?re: LIB和DLL的區(qū)別與使用
非常好,說得很詳細(xì),也很明白,學(xué)習(xí)了!
--xihuwuyu
7.?re: LIB和DLL的區(qū)別與使用
感覺很好,對于才接觸dll的我來說很夠用。。
--Chosan
8.?re: VC中ListCtrl經(jīng)驗總結(jié)【轉(zhuǎn)載】[未登錄]
總結(jié)的很好啊,轉(zhuǎn)了
--king
9.?re: LIB和DLL的區(qū)別與使用
就我自己沒看太懂嗎
--AzzStyle
10.?re: LIB和DLL的區(qū)別與使用
通俗易懂,呵
--我的
閱讀排行榜
1.?LIB和DLL的區(qū)別與使用(76627)
2.?虛擬機VMware tools安裝【轉(zhuǎn)載】(36600)
3.?Linux串口編程(24917)
4.?tar命令的C參數(shù)(18919)
5.?判斷素數(shù)的算法(11439)
6.?VC中ListCtrl經(jīng)驗總結(jié)【轉(zhuǎn)載】(11335)
7.?PHP調(diào)用外部程序的方法(11115)
8.?makefile和make規(guī)則(9226)
9.?C++進階必讀書籍【轉(zhuǎn)載】(8446)
10.?insert時出現(xiàn)主鍵沖突的處理方法【轉(zhuǎn)載】(8262)
Powered by:
博客園
模板提供:
滬江博客
Copyright ©2025 遠(yuǎn)風(fēng)
久久精品无码免费不卡
|
精品久久久久久无码人妻热
|
久久影院综合精品
|
浪潮AV色综合久久天堂
|
亚洲精品国产字幕久久不卡
|
2021国产成人精品久久
|
精品久久久无码人妻中文字幕
|
久久精品www
|
久久大香萑太香蕉av
|
精品久久久噜噜噜久久久
|
久久国产视屏
|
久久精品无码一区二区无码
|
99精品久久久久久久婷婷
|
欧美黑人又粗又大久久久
|
久久久久久青草大香综合精品
|
91久久精品91久久性色
|
久久婷婷五月综合色奶水99啪
|
久久免费美女视频
|
色8久久人人97超碰香蕉987
|
久久毛片一区二区
|
久久久久综合中文字幕
|
日本久久久久久中文字幕
|
91精品国产综合久久久久久
|
久久人妻无码中文字幕
|
亚洲美日韩Av中文字幕无码久久久妻妇
|
久久免费美女视频
|
91精品观看91久久久久久
|
99久久99久久久精品齐齐
|
精品久久一区二区
|
久久精品免费观看
|
一级做a爰片久久毛片16
|
18岁日韩内射颜射午夜久久成人
|
A狠狠久久蜜臀婷色中文网
|
国产精品禁18久久久夂久
|
狠狠色丁香久久综合五月
|
青青青青久久精品国产h
|
国产视频久久
|
老男人久久青草av高清
|
99蜜桃臀久久久欧美精品网站
|
午夜天堂精品久久久久
|
久久久久女人精品毛片
|