欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C++程序的函數(shù)指針實際操作介紹

這篇文章主要介紹“C++程序的函數(shù)指針實際操作介紹”,在日常操作中,相信很多人在C++程序的函數(shù)指針實際操作介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C++程序的函數(shù)指針實際操作介紹”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供灌陽網(wǎng)站建設(shè)、灌陽做網(wǎng)站、灌陽網(wǎng)站設(shè)計、灌陽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、灌陽企業(yè)網(wǎng)站模板建站服務(wù),10多年灌陽做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

先看看這段代碼:

#includeusing std::cout;using std::endl; inline int min(int a,int b){return (a>b) ? b : a;} int Min(int a,int b,int (*pf)(int,int))//可以使用缺省參數(shù):int Min(int a,int b,int (*pf)(int,int)=min){return pf(a,b); //通過函數(shù)指針來調(diào)用函數(shù),也可以寫為 //return (*pf)(a,b);作用是一樣的。} int main(int argc, char* argv[]){int i=1;int j=10; int r=Min(i,j,min); //如果使用缺省參數(shù)的話,可以寫成:int r=Min(i,j);cout<<1r<1<1endl;
return 0;
}

其中int (*pf)(int,int)定義了一個返回值為int,參數(shù)為兩個int的函數(shù)指針。如果不在*pf上加括號的話,即:

int *pf(int,int),

編譯器會把它解釋為一個返回值為整型指針,參數(shù)為兩個int的函數(shù)。

可以用typedef來簡化代碼:

#includeusing std::cout;using std::endl;typedef int (*PF)(int,int);//這行代碼是關(guān)鍵,相當與把上個例子中的函數(shù)指針聲明為一種數(shù)據(jù)類型。 inline int min(int a,int b){return (a>b) ? b : a;}int Min(int a,int b,PF f) //PF f定義f為和上個例子中一樣的函數(shù)指針。{return f(a,b);}int main(int argc, char* argv[]){int i=1;int j=10;int r=Min(i,j,min);cout<<1r<1<1endl;
return 0;
}

也可以提供一個用模板實現(xiàn)的函數(shù)指針:

#includeusing std::cout;using std::endl;inline int min(int a,int b){return (a>b) ? b : a;}templateT Min(T a,T b,T (*pf)(T,T)){return pf(a,b);}int main(int argc, char* argv[]){int i=1;int j=10;int r=Min(i,j,min); //int r=Min(i,j,min); 這種形式編譯器會報錯:Expression syntaxcout<<1r<1<1endl;
return 0;
}

當然,這個指針指向的函數(shù)也可用模板來實現(xiàn):

#includeusing std::cout;using std::endl; templateinline T min(T a,T b){return (a>b) ? b : a;}templateT Min(T a,T b,T (*pf)(T,T)){return pf(a,b);}int main(int argc, char* argv[]){long i=2000000;long j=1000000;//使用時有三種形式:long r=Min(i,j,min);//第一種。注意這里在min后一定要加,否則編譯器將報錯://Could not find a match for "Min(long,long,T(*)(T,T)"//第二種:long r=Min(i,j,min);//第三種:long r=Min(i,j,min);//其實質(zhì)是一樣的。cout<<1r<1<1endl;
return 0;
}

不過我不能用typedef使代碼更為簡便,就像下面這種形式:

template

typedef T (*PF)(T,T);

編譯器會提示:Templates must be classes or functions

另外還可以使用函數(shù)指針的數(shù)組:

#includeusing std::cout;using std::endl;inline int min(int a,int b){return (a>b) ? b : a;}inline int max(int a,int b){return (a>b) ? a : b;}int main(int argc, char* argv[]){int i=1;int j=10; int (*pf[2])(int,int);//擁有兩個元素的函數(shù)指針數(shù)組,每個元素是返回值為int,參數(shù)為兩個int的函數(shù)指針。pf[0]=min;pf[1]=max; int r1=pf[0](i,j);int r2=pf[1](i,j);cout<<1r1<1<1endl;cout<1<1r2<1<1endl;
return 0;
}

指向重載函數(shù)的指針也是值得注意的:#include using std::cout;using std::endl;

inline void print(int a){ cout<<1a<1<1endl;}inline void="" print(long="" b){="" cout<1<1b<1<1endl;}
int main(int argc, char* argv[]){ int i=1; long m=100000;
 void (*pf1)(int)=print; void (*pf2)(long)=print;
 pf1(i); pf2(m);

return 0;}程序運行的很成功。因為編譯器會自動查找所有的重載函數(shù),以找到和函數(shù)指針指向的函數(shù)具有相同的返回類型和參數(shù)表的函數(shù)。

如上我們可知聲明一個給定函數(shù)的函數(shù)指針的一般規(guī)則:即這個函數(shù)指針的返回類型和參數(shù)表必須和給定的函數(shù)相同。要注意省略號也是函數(shù)類型的一部分,int function1(int,...)與int function2(int)需要兩個不同的函數(shù)指針。其實函數(shù)名就是指向該函數(shù)的指針,對于int function(int)來說,function就是它的指針。我們可用這個特性對函數(shù)指針進行初始化:int (*pf)(int)=function;

取地址操作符也可以用在函數(shù)名上,上面的代碼和int (*pf)(int)=&function的作用是一樣的。

到此,關(guān)于“C++程序的函數(shù)指針實際操作介紹”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

當前題目:C++程序的函數(shù)指針實際操作介紹
文章分享:http://aaarwkj.com/article38/ipdgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導航、搜索引擎優(yōu)化、品牌網(wǎng)站制作、做網(wǎng)站、網(wǎng)站維護外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
97国产精品视频在线观看| 免费在线一区二区av| 午夜视频在线观看免费高清国产| 国产v精品欧美精品v日韩| 国产精品一区二区国产激情久久| 黄色大片黄色大片黄色大片| 国产操大奶头女人自拍av| 亚洲欧美国产日韩天堂区| 麻豆深夜激情在线观看| 国产综合欧美日韩在线91| 日韩精品91一区二区| av东京热免费看一区| 国产精品原创传媒在线观看| 国产高清不卡一区二区| 九九久久亚洲av成人乱片| 中文字幕人妻中文av不卡专区| 色婷婷中文字幕久久久| 国产传媒网约在线观看| 欧美日韩久久亚洲精品| 黄色av福利在线网站| 在线成人免费日韩视频| 国产精品国产三级国产不卡 | 色吊最新在线视频免费观看| 久久精品一区欧美成人| 久久久久亚洲av成人网人| 操你啦夜夜操狠狠躁天天爽| 中文字幕久久一区二区三区| 亚洲va久久久噜噜噜久久狠| 国产一级黄色性生活片| 丰满的熟妇女教师水多| 中文字幕在线看二区不卡 | 韩国三级在线视频网站| 亚洲欧美日韩国产一区| 欧美国产日本日韩在线黄| 日本中文字幕不卡在线一区二区| 高清av网站大全网站| 色哟哟视频在线免费观看| 日本熟女中文字幕一区| 国产成人综合久久三区北岛玲| 九色国产一区二区三区| 国产精品亚洲综合制服日韩|