成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用C++函數(shù)對象?

開發(fā) 后端
C++函數(shù)對象是C 語言程序的主要組成部分,一個函數(shù)可以調(diào)用其他函數(shù)。在設(shè)計良好的程序中,每個函數(shù)都有特定的目的。

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

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

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

  1.  void print(int x)  
  2.  
  3. {  
  4.  
  5.        if(x>=0&&x<=100) cout<<x<<” ”;  
  6.  
  7. }   
  8.  
  9.        //函數(shù)對象指針  
  10.  
  11. typedef void(*ptPrint)(int x);  
  12.  
  13. ptPrint prt=print;  
  14.  
  15. //一個重載了()運算符得類  
  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ù)對象了,如: for_each(vectorA.begin(),vectorA.end(),print)打印大于等于0小于等于100的數(shù), transform(vectorA.begin(),vectorA.end(),vectorB.begin(),isOk())判斷向量vectorA中值x的范圍是否在0之100之間。

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

【編輯推薦】

  1. 簡介學(xué)習(xí)C++總結(jié)之談
  2. 對C++庫函數(shù)進行學(xué)習(xí)探索總結(jié)筆記
  3. C++類庫設(shè)計的基本構(gòu)思與方法
  4. C++語言真的還有市場價值?
  5. C++類庫設(shè)計的基本構(gòu)思與方法
責(zé)任編輯:chenqingxiang 來源: 新京報
相關(guān)推薦

2010-01-27 10:13:22

C++類對象

2010-01-25 14:00:27

C++類

2010-01-28 13:35:41

調(diào)用C++函數(shù)

2010-02-03 14:18:44

2010-01-26 15:51:06

C++變量

2022-02-14 11:25:53

C++lambda函數(shù)

2010-01-28 10:49:22

C++構(gòu)造函數(shù)

2010-02-06 09:31:42

C++函數(shù)對象

2023-11-09 23:31:02

C++函數(shù)調(diào)用

2010-01-20 17:48:07

C++ 函數(shù)重載

2010-01-14 14:17:20

Visual C++

2011-07-13 11:34:58

CC++時間函數(shù)

2010-02-02 17:39:31

C++構(gòu)造函數(shù)

2010-02-04 16:39:26

C++析構(gòu)函數(shù)

2025-04-02 03:11:00

Python函數(shù)C++

2011-07-20 13:40:09

拷貝構(gòu)造函數(shù)

2010-01-25 14:43:00

C++構(gòu)造函數(shù)

2010-01-26 10:42:26

C++函數(shù)

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2010-02-02 15:01:59

C++成員函數(shù)指針
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www.国产.com| 精品一区二区三区在线观看国产 | 日韩精品一区二区三区视频播放 | 久久精品一区二区视频 | 成人在线视频免费观看 | 日本三级网址 | 欧美日韩精品久久久免费观看 | a久久| 午夜精品一区二区三区在线观看 | 久久久久久免费观看 | 国产免费一区二区 | 中文字幕一区在线观看视频 | 国产精品一区二区三级 | 亚洲精品国产第一综合99久久 | 午夜视频在线观看视频 | 国产一二三视频在线观看 | 亚洲黄色成人网 | 国产日韩电影 | 久久人人爽人人爽人人片av免费 | 亚洲一区二区免费电影 | 狠狠干网站 | av一级一片| 日韩专区中文字幕 | 久久一区二区三区四区 | 欧美一级免费黄色片 | 国产成人一区二区三区 | 欧美一区二区三区精品 | 亚洲第一免费播放区 | 欧洲成人午夜免费大片 | 欧美日韩国产一区二区三区 | av中文字幕在线 | 天天av网 | 国产精品久久久久久久久久免费看 | 一级网站 | 国产精品国产a级 | 久久99蜜桃综合影院免费观看 | 国产福利在线视频 | 精品视频一区二区 | 国产伊人久久久 | a免费视频 | 紧缚调教一区二区三区视频 |