日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何使用C++函數(shù)對(duì)象?

C++函數(shù)對(duì)象是通過一張?zhí)摵瘮?shù)表來實(shí)現(xiàn)的。簡(jiǎn)稱為V-Table。在這個(gè)表中,主是要一個(gè)類的虛函數(shù)的地址表,這張表解決了繼承、重載的問題,保證其容真實(shí)反應(yīng)實(shí)際的函數(shù)。

適合對(duì)屬于基本數(shù)據(jù)類型的對(duì)象排序,它使用<作為排序比較規(guī)則,第2種語法則是根據(jù)指定排序規(guī)則comp來進(jìn)行排序,其中comp參數(shù)就是一個(gè)函數(shù)對(duì)象。如果要排序的對(duì)象不是如int,float等簡(jiǎn)單類型或不想使用<作為排序規(guī)則的話就得使用第2種語法。

指定一個(gè)函數(shù)對(duì)象來作為排序規(guī)則(函數(shù)對(duì)象)進(jìn)行排序,那函數(shù)對(duì)象究竟是什么了,其實(shí)簡(jiǎn)單地說它就是一些使用起來像調(diào)用函數(shù)一樣的對(duì)象,如:一般的函數(shù),函數(shù)指針,或重載了()運(yùn)算符的類的實(shí)例等,使用這些對(duì)象的方式好像調(diào)用函數(shù)一樣所以稱這些對(duì)象為C++函數(shù)對(duì)象,如下就是函數(shù)對(duì)象定義:

 
 
 
  1.  void print(int x)  
  2.  
  3. {  
  4.  
  5.        if(x>=0&&x<=100) cout<” ”;  
  6.  
  7. }   
  8.  
  9.        //函數(shù)對(duì)象指針  
  10.  
  11. typedef void(*ptPrint)(int x);  
  12.  
  13. ptPrint prt=print;  
  14.  
  15. //一個(gè)重載了()運(yùn)算符得類  
  16.  
  17. class isOk   
  18.  
  19. {  
  20.  
  21.   public:  
  22.  
  23.   bool operator () (int val)  
  24.  
  25.   {   
  26.  
  27.        if(val<0||val>100)  
  28.  
  29. {  
  30.  
  31.        return false;  
  32.  
  33. }  
  34.  
  35.   return true;  
  36.  
  37. }  
  38.  
  39. }; 

有了上面得定義后,我們就可以以函數(shù)調(diào)用的形式使用上面的函數(shù)對(duì)象了,如: for_each(vectorA.begin(),vectorA.end(),print)打印大于等于0小于等于100的數(shù), transform(vectorA.begin(),vectorA.end(),vectorB.begin(),isOk())判斷向量vectorA中值x的范圍是否在0之100之間。

如果在則向量vectorB對(duì)應(yīng)的值為真,否則為假,其中vectorB中的數(shù)據(jù)類型為bool。在實(shí)際中往往會(huì)根據(jù)調(diào)用函數(shù)對(duì)象時(shí)參數(shù)的多少將函數(shù)對(duì)象分為三種形式,,無參函數(shù)對(duì)象,一元函數(shù)對(duì)象和二元函數(shù)對(duì)象,剛才的C++函數(shù)對(duì)象就是一個(gè)無參函數(shù)對(duì)象。無參函數(shù)對(duì)象與一元,二元函數(shù)對(duì)象有很大的區(qū)別,一元,二元函數(shù)對(duì)象的定義需要繼承以下函數(shù)原型:

 
 
 
  1. class Grade  
  2.  
  3. {  
  4.  
  5. public:  
  6.  
  7.     Grade(int id,string name,int score)  
  8.  
  9.     {  
  10.  
  11.         ID=id;  
  12.  
  13.         Name=name;  
  14.  
  15.         Score=score;  
  16.  
  17.     }  
  18.  
  19.     int ID;  
  20.  
  21.     string Name;  
  22.  
  23.     int Score;  
  24.  
  25. }; 

分享名稱:如何使用C++函數(shù)對(duì)象?
路徑分享:http://www.dlmjj.cn/article/cceodcg.html