青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

學(xué)習(xí)《C++ Primer》的筆記

函數(shù)指針的一種替代策略是Function object(函數(shù)對(duì)象)。

函數(shù)對(duì)象與函數(shù)指針相比較有兩個(gè)方面的優(yōu)點(diǎn):首先如果被重載的調(diào)用操作符是inline函數(shù)則編譯器能夠執(zhí)行內(nèi)聯(lián)編譯,提供可能的性能好處;其次函數(shù)對(duì)象可以擁有任意數(shù)目的額外數(shù)據(jù),用這些數(shù)據(jù)可以緩沖結(jié)果,也可以緩沖有助于當(dāng)前操作的數(shù)據(jù)。

函數(shù)對(duì)象是一個(gè)類,它重載了函數(shù)調(diào)用操作符operator() ,該操作符封裝了一個(gè)函數(shù)的功能。典型情況下函數(shù)對(duì)象被作為實(shí)參傳遞給泛型算法,當(dāng)然我們也可以定義獨(dú)立的函數(shù)對(duì)象實(shí)例。

來看一個(gè)例子:

#include<vector>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
class Sum {
int val;
public:
Sum(int i) :val(i) { }

//當(dāng)在需要int的地方,Sum將自動(dòng)轉(zhuǎn)換為int類型
//這里是為了方便cout<<Sum的實(shí)例;
operator int() const { return val; }

//寫在類中的函數(shù)代碼一般默認(rèn)為內(nèi)聯(lián)代碼
int operator()(int i) { return val+=i; }
};

void f(vector<int> v)
{
Sum s = 0; //Sum s = 0等價(jià)于Sum s(0),不等價(jià)于Sum s;s = 0;

//對(duì)vector<int>中的元素求和
//函數(shù)對(duì)象被作為實(shí)參傳遞給泛型算法
s = for_each(v.begin(), v.end(), s);

cout << "the sum is " << s << "\n";

//更簡(jiǎn)單的寫法,定義獨(dú)立的函數(shù)對(duì)象實(shí)例
cout << "the sum is " << for_each(v.begin(), v.end(), Sum(0)) << "\n";
}


int main()
{
vector<int> v;
v.push_back(3); v.push_back(2); v.push_back(1);
f(v);
system("pause");
return 0;
}
posted on 2005-12-01 20:14 張沈鵬 閱讀(887) 評(píng)論(9)  編輯 收藏 引用
Comments
  • # re: Function object(函數(shù)對(duì)象)
    味全每日C++
    Posted @ 2005-12-01 21:21
    Sum s = 0;//(為什么可以用s = 0來初始化?沒有重載 operator=?。。。?
    這里是因?yàn)轭愖詣?dòng)生成的賦值函數(shù)吧..  回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    c++基礎(chǔ)
    Posted @ 2005-12-01 22:19
    Sum s = 0;
    等同于
    Sum s(0);

    Sum s = 0;
    s = 0;
    兩個(gè)=含義不同  回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    c++基礎(chǔ)
    Posted @ 2005-12-01 22:38
    to 樓上:
    不是什么拷貝構(gòu)造函數(shù),只是普通的帶參數(shù)的構(gòu)造函數(shù)

    口誤吧,呵呵  回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    力為
    Posted @ 2005-12-01 22:54
    Sum s = 0;//(為什么可以用s = 0來初始化?)
    這個(gè)確實(shí)是C++的基本問題,沒有弄懂這個(gè)問題,可以說是C++小學(xué)水平的。
    讀了《Effective C++》的都應(yīng)該知道的吧。:)  回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    joyfire
    Posted @ 2005-12-01 23:09
    沒有必要因?yàn)橐稽c(diǎn)小問題打擊人家。C++博大精深,誰能有把握說自己完全掌握。學(xué)習(xí)的興趣和行動(dòng)比什么都重要。我從zuroc的blog學(xué)到了不少東西。  回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    張沈鵬
    Posted @ 2005-12-01 23:52
    學(xué)習(xí)C++中,我剛大二,并且專業(yè)也和編程關(guān)系不大,水平很淺,見笑了。。。。。。。  回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    放屁阿狗
    Posted @ 2005-12-07 22:53
    看看 bind2nd就明白了,其實(shí)c++的東西沒有直接看代碼來的體會(huì)直接和深刻  回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    simida
    Posted @ 2006-11-16 14:48
    why Sum s = 0?
    先調(diào)用 Sum(int i) 構(gòu)建臨時(shí)對(duì)象 temp(0).然后調(diào)用拷貝構(gòu)造函數(shù)?
    還是 直接讓s指向temp(0)?

      回復(fù)  更多評(píng)論   
  • # re: Function object(函數(shù)對(duì)象)
    張沈鵬
    Posted @ 2006-11-16 16:00
    隱式類轉(zhuǎn)換
    c++ primer上有的  回復(fù)  更多評(píng)論   

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            好男人免费精品视频| 国产在线精品二区| 一本色道久久综合狠狠躁篇怎么玩 | 亚洲三级免费观看| 亚洲第一主播视频| 欧美大片免费观看在线观看网站推荐| 亚洲高清视频一区二区| 亚洲大片免费看| 欧美久久久久久久| 亚洲女爱视频在线| 欧美在线视频不卡| 亚洲第一二三四五区| 欧美黑人一区二区三区| 欧美欧美天天天天操| 亚洲综合清纯丝袜自拍| 欧美在线中文字幕| 日韩视频在线播放| 亚洲综合国产| 亚洲缚视频在线观看| 亚洲精品女人| 欧美日韩激情小视频| 亚洲欧美日韩精品久久久| 久久精品道一区二区三区| 亚洲破处大片| 亚洲欧美日韩一区二区在线 | 一区二区电影免费观看| 亚洲亚洲精品在线观看| 欲香欲色天天天综合和网| 最新日韩中文字幕| 国产欧美日韩综合一区在线播放| 你懂的视频一区二区| 欧美涩涩网站| 蜜桃久久av| 国产精品视频999| 亚洲成色最大综合在线| 国产精品嫩草99av在线| 亚洲第一福利社区| 国产日韩在线播放| 日韩亚洲综合在线| 有坂深雪在线一区| 亚洲免费影院| 亚洲私人影吧| 蜜桃伊人久久| 欧美在线黄色| 欧美视频精品在线| 亚洲国产精品久久精品怡红院| 国产精品理论片| 国产欧美一级| 亚洲三级视频| 亚洲国产日韩在线一区模特| 亚洲——在线| 亚洲影院免费观看| 欧美精品在线观看播放| 欧美大片专区| 在线看日韩欧美| 欧美一区二区三区视频在线| 亚洲一区黄色| 欧美日韩亚洲一区二区三区在线观看 | 国产精品家教| 日韩视频一区二区在线观看 | 欧美日韩久久精品| 亚洲欧洲中文日韩久久av乱码| 极品尤物av久久免费看 | 日韩亚洲欧美高清| 一区二区三区精品| 欧美精品一区二区在线观看| 亚洲国产成人精品女人久久久| 悠悠资源网久久精品| 久久人人97超碰精品888| 久久人人97超碰国产公开结果| 国产伦精品一区二区三| 亚洲欧美在线观看| 久久精品在线免费观看| 国产综合香蕉五月婷在线| 校园春色综合网| 久久久久久有精品国产| 韩国精品在线观看| 久久漫画官网| 亚洲夫妻自拍| 亚洲色无码播放| 国产精品成人一区二区三区夜夜夜 | 亚洲在线成人精品| 国产农村妇女毛片精品久久麻豆| 亚洲综合第一页| 久久久久**毛片大全| 黄色亚洲网站| 欧美不卡视频一区| 99成人免费视频| 欧美一区二区视频在线| 国产一区二区三区四区五区美女 | 欧美华人在线视频| 99精品国产99久久久久久福利| 亚洲免费视频网站| 韩日欧美一区| 欧美日产一区二区三区在线观看| 一区二区三区鲁丝不卡| 久久精品30| 亚洲美女在线视频| 国产精品午夜久久| 久久一区中文字幕| 日韩亚洲国产欧美| 久久久久**毛片大全| 亚洲久久一区二区| 国产日韩在线看片| 欧美高清视频www夜色资源网| 亚洲无线视频| 亚洲成人在线免费| 亚洲精品一区二区三区99| 欧美午夜在线观看| 久久国产精品久久w女人spa| 亚洲黄色一区| 久久久久综合| 亚洲少妇诱惑| 亚洲国产精品女人久久久| 欧美亚洲成人精品| 美女免费视频一区| 亚洲欧美日本在线| 亚洲精品视频在线播放| 久热国产精品视频| 亚洲欧美日韩精品一区二区 | 亚洲成人资源| 国产裸体写真av一区二区| 欧美国产乱视频| 欧美有码视频| 亚洲欧美国产一区二区三区| 亚洲激情不卡| 麻豆久久久9性大片| 欧美在线一级视频| 亚洲在线不卡| 夜久久久久久| 亚洲人成在线观看| 在线电影院国产精品| 国产日韩一区欧美| 国产精品一区二区三区成人| 欧美日产一区二区三区在线观看| 久久综合久久美利坚合众国| 欧美一级在线视频| 亚洲欧美区自拍先锋| 亚洲视频免费| 一区二区三区国产在线| 日韩一区二区精品葵司在线| 亚洲国产片色| 亚洲日本在线观看| 亚洲伦理网站| 9人人澡人人爽人人精品| 亚洲国内自拍| 91久久精品国产| 亚洲免费av片| 一区二区三区日韩在线观看| 一区二区三区日韩精品视频| 日韩亚洲在线观看| 亚洲午夜激情免费视频| 亚洲欧美国产视频| 欧美专区在线| 噜噜噜噜噜久久久久久91| 免费h精品视频在线播放| 欧美va天堂| 欧美精品福利视频| 国产精品99免视看9| 国产精品一区毛片| 在线观看精品一区| 日韩午夜激情电影| 亚洲欧美一区二区三区久久| 欧美一级在线亚洲天堂| 久久久久高清| 亚洲二区在线| 亚洲视频大全| 久久国产免费看| 欧美激情精品久久久久久久变态| 欧美精品一区二区精品网 | 久久香蕉国产线看观看网| 久久在线免费| 欧美视频一区二区| 国产一本一道久久香蕉| 亚洲国产1区| 亚洲影院色在线观看免费| 久久久综合激的五月天| 亚洲福利在线视频| 亚洲网在线观看| 久久尤物视频| 亚洲第一在线综合网站| 99视频精品全部免费在线| 久久国产黑丝| 欧美日一区二区三区在线观看国产免| 国产精品女人久久久久久| 亚洲日本黄色| 久久xxxx| 日韩午夜电影| 美女黄网久久| 国产午夜精品视频免费不卡69堂| 亚洲精品一区二区三| 久久久91精品| 一本色道久久加勒比88综合| 久久久久国内| 国产精品美女一区二区在线观看| 91久久精品日日躁夜夜躁欧美 | 亚洲免费影视第一页| 亚洲高清不卡在线观看| 久久精品国产99国产精品| 欧美色区777第一页|