遠(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)
久久精品国产亚洲Aⅴ蜜臀色欲
|
国产激情久久久久久熟女老人
|
久久久久18
|
成人精品一区二区久久
|
国产成人精品免费久久久久
|
久久久亚洲欧洲日产国码二区
|
亚洲精品乱码久久久久66
|
伊人久久精品影院
|
一本色道久久88综合日韩精品
|
久久天天躁狠狠躁夜夜2020
|
伊人久久无码精品中文字幕
|
久久午夜免费视频
|
亚洲AV无码久久精品色欲
|
色妞色综合久久夜夜
|
AV无码久久久久不卡网站下载
|
2020久久精品国产免费
|
99久久综合国产精品二区
|
久久99精品久久久久久噜噜
|
久久精品无码一区二区三区免费
|
欧洲人妻丰满av无码久久不卡
|
久久人人爽爽爽人久久久
|
久久精品人人做人人爽电影
|
日韩精品久久久久久
|
一级a性色生活片久久无少妇一级婬片免费放
|
欧美一级久久久久久久大
|
亚洲精品无码成人片久久
|
91精品国产91久久综合
|
久久久受www免费人成
|
亚洲国产精品无码久久SM
|
久久99热国产这有精品
|
香蕉aa三级久久毛片
|
久久精品国产亚洲av麻豆色欲
|
久久se精品一区精品二区国产
|
久久成人国产精品免费软件
|
婷婷久久综合九色综合98
|
久久99这里只有精品国产
|
久久99国产精品久久久
|
国产精品久久久久久五月尺
|
成人午夜精品久久久久久久小说
|
国产成人精品久久
|
久久一区二区免费播放
|