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

學(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 張沈鵬 閱讀(882) 評(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>
            久久综合九色综合久99| 欧美www视频在线观看| 国产精品一区在线观看| 欧美日韩精品一区二区三区四区| 米奇777超碰欧美日韩亚洲| 老鸭窝亚洲一区二区三区| 欧美va日韩va| 欧美色视频在线| 宅男精品导航| 这里只有精品在线播放| 亚洲一区视频在线| 欧美在线视频二区| 久久综合伊人77777蜜臀| 米奇777超碰欧美日韩亚洲| 欧美激情a∨在线视频播放| 亚洲人午夜精品免费| 亚洲精品中文字幕有码专区| 亚洲午夜精品久久久久久浪潮| 性欧美激情精品| 欧美顶级艳妇交换群宴| 国产精品视频九色porn| 亚洲国产婷婷| 午夜亚洲性色视频| 久久影院午夜片一区| 亚洲欧洲日本专区| 久久福利资源站| 欧美视频二区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 久久久国产精彩视频美女艺术照福利| 免费日韩视频| 亚洲一区亚洲二区| 欧美精品一区二区三区一线天视频 | 亚洲欧美日韩中文播放| 欧美~级网站不卡| 国产欧美一区二区精品性| 亚洲欧洲日产国产网站| 欧美自拍偷拍| 制服诱惑一区二区| 欧美成在线观看| 激情视频一区二区| 欧美一级淫片播放口| 一本综合精品| 欧美日韩亚洲综合一区| 亚洲精品乱码| 蘑菇福利视频一区播放| 欧美一区三区三区高中清蜜桃| 欧美日韩在线不卡一区| 亚洲精品裸体| 亚洲成人自拍视频| 久久综合给合| 伊人成人在线视频| 久久婷婷激情| 久久精品女人的天堂av| 国产视频综合在线| 久久精品99国产精品日本| 亚洲一二三级电影| 国产精品美女在线| 欧美一区二区三区四区夜夜大片| 日韩亚洲欧美成人一区| 欧美久久久久久久久| 亚洲人在线视频| 亚洲欧洲日本国产| 欧美日韩小视频| 99视频有精品| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲视频碰碰| 国产精品美女久久久浪潮软件| 亚洲天堂激情| 一区二区av在线| 国产精品久久久久久户外露出| 亚洲字幕一区二区| 亚洲先锋成人| 国内久久视频| 免费人成网站在线观看欧美高清| 久久久国产一区二区| 亚洲成人在线视频播放| 欧美国产日本在线| 欧美日韩国产精品自在自线| 亚洲直播在线一区| 久久av在线| 亚洲精品一品区二品区三品区| 亚洲人成在线播放| 国产精品久久久久999| 欧美在线一二三区| 久久五月天婷婷| 一区二区三区色| 欧美一区二区黄| 亚洲精品美女久久久久| 亚洲一区bb| 亚洲国产精品精华液2区45| 91久久精品网| 国产日韩欧美不卡| 亚洲人成网站精品片在线观看| 国产精品每日更新| 蜜乳av另类精品一区二区| 欧美日韩一区三区| 久久亚洲私人国产精品va媚药| 欧美激情黄色片| 久久久噜久噜久久综合| 欧美国产视频在线| 久久久成人网| 欧美日韩在线观看一区二区三区| 久久久久久九九九九| 欧美人成网站| 老司机免费视频一区二区| 欧美日韩另类综合| 美女精品自拍一二三四| 国产精品大片免费观看| 欧美国产精品日韩| 国产视频不卡| 一本一本a久久| 亚洲精品裸体| 久久综合中文| 久久综合婷婷| 国产一区二区三区在线观看免费| 一本色道久久综合狠狠躁篇怎么玩| 136国产福利精品导航网址| 欧美亚洲日本网站| 午夜天堂精品久久久久| 欧美日韩精品免费在线观看视频| 麻豆精品在线播放| 国产一区二区三区观看| 午夜精品久久久久久久| 先锋影院在线亚洲| 国产精品久久久久影院色老大| 91久久夜色精品国产九色| 在线免费不卡视频| 欧美亚洲免费在线| 欧美久久婷婷综合色| 亚洲国产精品嫩草影院| 欧美一区二区在线视频| 欧美一级专区免费大片| 国产精品v片在线观看不卡| 亚洲精品视频免费观看| 亚洲美女电影在线| 蜜乳av另类精品一区二区| 欧美a级大片| 亚洲福利视频一区| 女女同性精品视频| 亚洲福利在线观看| 日韩午夜剧场| 欧美日韩一区二区三区四区五区| 亚洲精品一区二区三| 一区二区欧美国产| 欧美揉bbbbb揉bbbbb| 亚洲图片在线| 欧美怡红院视频一区二区三区| 国产日韩av一区二区| 欧美综合二区| 欧美成黄导航| 日韩亚洲视频| 国产精品红桃| 久久狠狠婷婷| 亚洲激情欧美| 亚洲免费在线视频| 国产午夜精品理论片a级探花| 欧美在线你懂的| 欧美不卡在线| 亚洲一区高清| 国内精品国语自产拍在线观看| 久久久国产精品一区| 亚洲电影中文字幕| 亚洲欧美激情一区二区| 国产婷婷97碰碰久久人人蜜臀| 久久久久久国产精品一区| 91久久精品www人人做人人爽| 亚洲图片欧洲图片日韩av| 国产日韩欧美一区二区三区四区| 久久久久久尹人网香蕉| 亚洲伦理在线免费看| 久久精品99国产精品日本 | 亚洲网站在线观看| 国产欧美韩国高清| 欧美刺激午夜性久久久久久久| 一道本一区二区| 另类亚洲自拍| 午夜精品国产| 亚洲人精品午夜在线观看| 国产精品入口麻豆原神| 免费在线国产精品| 亚洲欧美在线网| 亚洲国产影院| 久久精品在线免费观看| 艳妇臀荡乳欲伦亚洲一区| 国产日韩欧美高清| 欧美日韩第一区日日骚| 久久婷婷国产麻豆91天堂| 亚洲午夜av在线| 亚洲欧洲综合| 欧美sm极限捆绑bd| 久久国产精品72免费观看| 亚洲特级毛片| 亚洲精品一品区二品区三品区| 好吊日精品视频| 国产精品女人网站| 欧美日韩国产成人高清视频| 久久婷婷久久一区二区三区| 亚洲欧美日韩成人| 亚洲一区二区三区视频| 99热精品在线观看|