c++函數(shù)指針和回調(diào)函數(shù)示例
1.函數(shù)指針
函數(shù)指針是一個(gè)指針,只是這個(gè)指針?biāo)幌衿胀ǖ闹羔樦赶蚴鞘且粋€(gè)變量,此時(shí)它指向的是一個(gè)函數(shù),也就是它存儲的是一個(gè)函數(shù)的地址,如果我們改變它的值,讓它所指向的地址由指向funA轉(zhuǎn)變?yōu)橹赶騠unB,那么這個(gè)函數(shù)指針的作用就改變了。
2.回調(diào)函數(shù)
什么是回調(diào)函數(shù)呢?回調(diào)函數(shù)其實(shí)就是一個(gè)通過函數(shù)指針調(diào)用的函數(shù)!假如你把A函數(shù)的指針當(dāng)作參數(shù)傳給B函數(shù),然后在B函數(shù)中通過A函數(shù)傳進(jìn)來的這個(gè)指針調(diào)用A函數(shù),這就是回調(diào)機(jī)制。B函數(shù)就是回調(diào)函數(shù)。
3.函數(shù)指針的使用
3.1函數(shù)指針聲明
typedef 返回類型(*函數(shù)指針類型名)(函參列表);
#include <iostream>
using namespace std;
typedef void(*Fun)(int,int); //定義函數(shù)指針類型
void min(int a,int b);
void max(int a,int b);
void min(int a,int b)
{ int minvalue=a<b?a:b;
std::cout<<"min value is "<<minvalue<<"\n";
}
void max(int a,int b)
{ int maxvalue=a>b?a:b;
std::cout<<"Max value is "<<maxvalue<<"\n";
}
int main()
{ Fun pFun=NULL; //定義函數(shù)指針變量pFun
//pFun=min; //兩種賦值方式都支持
pFun=&min;
pFun(1,2); //這里獲得最小值
//pFun=max;
pFun=&max;
pFun(1,2); //這里獲得最大值
return 0;
}
相關(guān)文章
簡單掌握C++編程中的while與do-while循環(huán)語句使用
這篇文章主要介紹了C++編程中的while與do-while循環(huán)語句使用,區(qū)別就是while是先判斷再執(zhí)行,而do-while是先執(zhí)行再判斷,需要的朋友可以參考下2016-01-01
C++實(shí)現(xiàn)教職工信息管理系統(tǒng)課程設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)教職工信息管理系統(tǒng)課程設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Visual?Studio2022的完全卸載及安裝到D盤的操作方法
這篇文章主要介紹了Visual?Studio2022的完全卸載以及完全安裝到D盤,因?yàn)閂S如果隨便寫在會有很多很多的亂七八糟的東西掉出來,所以我們選擇制式一點(diǎn)的卸載方式,需要的朋友可以參考下2022-09-09
詳解C語言中free()函數(shù)與getpagesize()函數(shù)的使用
這篇文章主要介紹了詳解C語言中free()函數(shù)與getpagesize()函數(shù)的使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-08-08
Qt使用QSoundEffect類實(shí)現(xiàn)播放音效或音樂
這篇文章主要為大家詳細(xì)介紹了Qt如何使用QSoundEffect類實(shí)現(xiàn)播放音效或音樂功能,文中的示例代碼講解詳細(xì),有需要的小伙伴可以參考一下2024-12-12
c語言swap(a,b)值交換的4種實(shí)現(xiàn)方法
c語言swap(a,b)值交換的4種實(shí)現(xiàn)方法,這么好的東西,盡管簡單,但值得發(fā)表,以此共享。2013-02-02
C語言實(shí)現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法
這篇文章主要介紹了C語言實(shí)現(xiàn)訪問及查詢MySQL數(shù)據(jù)庫的方法,涉及C語言基于libmysql.lib實(shí)現(xiàn)訪問MySQL數(shù)據(jù)庫的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01

