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

Impossible is nothing  
  愛過知情重醉過知酒濃   花開花謝終是空   緣份不停留像春風來又走   女人如花花似夢
公告
日歷
<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
統計
  • 隨筆 - 8
  • 文章 - 91
  • 評論 - 16
  • 引用 - 0

導航

常用鏈接

留言簿(4)

隨筆分類(4)

隨筆檔案(8)

文章分類(77)

文章檔案(91)

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

函數指針實在是個討厭的東西,說實話,我很討厭他的語法,非常丑陋,而且有很多局限性,起碼不能保有數據,函數對象是一個替換函數指針的好東東,通過重載operator()操作符,可以實現與函數指針幾乎完全一致的功能。最近在看《C++必知必會》,里面講到用函數對象替代函數指針,還有例子,覺得很好,貼出來,供兄弟們一起參考研究。

下面的代碼并不復雜,先定義了一個基類函數對象Action,Button類帶有一個Action的指針,作為其回調函數,在setAction中設置回調。由于Action是一個基類,所有繼承了Action的繼承類如PlayMusic都可以被Button調用,而且不需要改變接口,這個比起函數指針作回調來說,簡單了很多,也清晰很多。

 

下面是代碼:

#include <iostream>
#include <string>
#include <stdlib.h>

using namespace std;

class Action
{
public:
    virtual ~Action() = 0;
    virtual void operator()() = 0;
    virtual Action *clone() const = 0;
};

Action::~Action()
{ cout << "::~Action()" << endl; }

void Action::operator()()
{
    cout << "1111111111" << endl;
}

class Button
{
public:
    Button( const string &label )
        : m_label( label ), m_action( 0 ) {}
    ~Button()
    {
        if( m_action )
        {
            delete m_action;
            m_action = NULL;
        }   
    }
    void setAction( const Action *newAction )
    {
        Action *tmp = newAction->clone();
        delete m_action;
        m_action = tmp;
    }
    void onClick() const
    {
        if( m_action )
            ( *m_action )();
    }

private:
    string m_label;
    Action *m_action;
};

class PlayMusic : public Action
{
public:
    PlayMusic( const string &songFile )
        :m_song( songFile ) {}
    virtual ~PlayMusic() { cout << "~PlayMusic()" << endl; }
       
    void operator()()
    {
        cout << "PlayMusic " << m_song << endl;
    }
    virtual Action *clone() const
    {
        return (Action *)this;
    }
private:
    string m_song;
};

int main(int argc, char *argv[])
{
    Button *b = new Button( "Anoko no namaewa" );
    PlayMusic *song = new PlayMusic( "AnokoNonamaewa.mp3" );
    b->setAction( song );
    b->onClick();
   
    delete b;
   
  system("PAUSE"); 
  return 0;
}

posted on 2006-03-14 21:34 笑笑生 閱讀(636) 評論(0)  編輯 收藏 引用 所屬分類: C++語言
 
Copyright © 笑笑生 Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            夜夜狂射影院欧美极品| 精品999网站| 亚洲一区二区综合| 亚洲人成精品久久久久| 欧美精品一卡| 欧美在线亚洲| 久久午夜羞羞影院免费观看| 亚洲精品一区二区三区婷婷月| 亚洲欧洲精品一区二区三区不卡 | 欧美日韩国产一区二区三区地区| 国产精品一区二区三区四区五区| 国产一区二区看久久| 久久深夜福利免费观看| 日韩亚洲欧美成人| 国产精品日韩一区二区| 久久最新视频| 亚洲一区成人| 在线日韩欧美| 亚洲午夜视频在线观看| 狠狠色丁香婷婷综合影院| 亚洲精品美女免费| 国产日韩精品在线观看| 亚洲国产欧美在线人成| 国产欧美 在线欧美| 亚洲国产黄色| 亚洲自啪免费| 亚洲国产欧美在线| 久久久久国产精品午夜一区| 亚洲精品综合| 国模精品娜娜一二三区| 夜夜嗨av色一区二区不卡| 国产一区二区三区在线观看免费 | 欧美呦呦网站| 亚洲天堂网在线观看| 在线精品福利| 亚洲国产成人精品女人久久久| 久久精品国产亚洲一区二区| 99精品免费| 久久久精品2019中文字幕神马| 国产主播在线一区| 亚洲毛片av| 亚洲欧洲精品一区二区三区| 最新国产乱人伦偷精品免费网站| 麻豆国产精品va在线观看不卡| 在线成人欧美| 亚洲欧美日韩一区二区| 亚洲性线免费观看视频成熟| 欧美sm极限捆绑bd| 免费一级欧美片在线观看| 国产欧美日韩视频一区二区| 久久精品系列| 国产精品丝袜久久久久久app| 欧美在线看片a免费观看| 欧美理论在线播放| 欧美黄色免费网站| 亚洲高清av| 久久久久久噜噜噜久久久精品 | 欧美精品免费看| 久久婷婷人人澡人人喊人人爽| 久久久久久久久岛国免费| 性欧美长视频| 久久久久在线| 久久久青草婷婷精品综合日韩| 欧美凹凸一区二区三区视频| 久久亚洲色图| 在线电影一区| 99re6热在线精品视频播放速度| 国产精品久久一卡二卡| 9l国产精品久久久久麻豆| 99精品国产高清一区二区| 亚洲欧美日韩电影| 亚洲成人资源| 欧美国产激情| 一区二区三区视频在线看| 午夜精彩国产免费不卡不顿大片| 久久国产精品久久国产精品| 亚洲精品视频在线播放| 国产精品99久久久久久久女警| 国产综合18久久久久久| 久久久久成人网| 亚洲高清视频在线观看| 亚洲桃花岛网站| 国产精品视频免费| 久久国产直播| 亚洲第一精品夜夜躁人人躁 | 欧美肥婆在线| 亚洲精品一区在线观看香蕉| 欧美日韩三级| 香蕉乱码成人久久天堂爱免费| 亚洲精品一二区| 欧美三级在线播放| 久久国产精品久久久久久久久久 | 亚洲黄色小视频| 欧美日韩精品久久久| 亚洲免费伊人电影在线观看av| 亚洲精品久久久蜜桃| 欧美视频福利| 久久久久久久久综合| 久久精品国产在热久久 | 亚洲精品欧美日韩| 欧美亚洲午夜视频在线观看| 伊人婷婷久久| 香蕉免费一区二区三区在线观看| 一区二区三区免费网站| 国产精品综合色区在线观看| 蜜桃av一区| 亚洲综合导航| 亚洲精品社区| 中文成人激情娱乐网| 国产欧美日本| 欧美日韩一区二区三区在线视频 | 在线午夜精品| 在线观看欧美激情| 国产精品理论片在线观看| 久久久天天操| 亚洲综合电影| 一区二区三区不卡视频在线观看 | 亚洲一区在线看| 影音先锋久久资源网| 国产精品乱人伦一区二区| 99精品国产福利在线观看免费| 日韩视频在线播放| 国内精品久久久久影院薰衣草| 久久国产精品网站| 久久久美女艺术照精彩视频福利播放 | 久久精品视频免费| 国产一区三区三区| 欧美亚洲成人精品| 欧美日韩国产成人在线91| 久久久欧美一区二区| 欧美在线免费看| 香蕉精品999视频一区二区| 亚洲尤物精选| 亚洲女爱视频在线| 亚洲色图自拍| 亚洲素人一区二区| 在线午夜精品自拍| 久久视频一区| 久久精品主播| 久久资源在线| 欧美freesex8一10精品| 日韩午夜中文字幕| 亚洲久久视频| 亚洲视频在线观看网站| 一区二区三区欧美亚洲| 中国成人亚色综合网站| 一本色道久久综合亚洲精品不 | 久久久久久久久久久久久久一区| 欧美a级理论片| 美女图片一区二区| 玖玖在线精品| 亚洲国产欧美日韩| 久久超碰97人人做人人爱| 亚洲第一中文字幕| 亚洲人久久久| 亚洲图片在区色| 欧美在线免费观看视频| 久久成人精品无人区| 一本高清dvd不卡在线观看| 日韩午夜在线电影| 亚洲欧美一区二区视频| 久久大香伊蕉在人线观看热2| 日韩视频久久| 欧美亚洲视频在线观看| 免费高清在线一区| 亚洲激情视频在线| 亚洲一区亚洲| 快射av在线播放一区| 欧美日韩国产成人在线| 国产网站欧美日韩免费精品在线观看| 欧美福利在线观看| 国产精品黄视频| 一区二区视频在线观看| 日韩视频在线你懂得| 尤物yw午夜国产精品视频明星| 国产精品久久久久影院亚瑟| 国产亚洲精品一区二555| 亚洲片在线资源| 亚洲欧美综合精品久久成人| 麻豆精品在线观看| 中文高清一区| 欧美丰满高潮xxxx喷水动漫| 久久精品成人一区二区三区蜜臀 | 夜夜爽夜夜爽精品视频| 午夜精品国产| 欧美国产日本| 欧美激情91| 国产亚洲精品aa午夜观看| 亚洲美女诱惑| 老司机成人在线视频| 制服丝袜亚洲播放| 免费成人av在线看| 模特精品在线| 国产一区二区黄| 亚洲欧美国产高清| 欧美一区二区视频在线观看2020| 亚洲一区二区视频在线观看| 麻豆精品在线播放| 欧美自拍偷拍| 国产欧美精品日韩|