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

xyjzsh

指向類成員對象的指針

定義:
class Shape
{
public:
//...
void moveTo(Point newLocation);
bool validate()const;
vritual bool draw() const=0;
//...
}:
class Circle: public Shape
{
//...
bool draw() const;
//...
};

void (Shape::*mf1)(Point ) = &Shape::moveTo;//指向類的成員函數的指針。

ReturnType (ClassName::*pFuncName)(paramList);
pFuncName定義了指向ClassName中的一組函數。這組函數的形式是返回值為ReturnType,函數列表為paramList.

ClassName的限定使得只有ClassName或派生自它的類的對象才能解引用這個函數指針。

  1 #include"stdafx.h"
  2 #include<stdio.h>
  3 #include<stdlib.h>
  4 
  5 class Base;
  6 class Derived;
  7 typedef long (Base::*PFunc)(long,long);
  8 
  9 enum FuncType
 10 {
 11     ADD=1,
 12     SUB,
 13     DIV,
 14     MUL,
 15 };
 16 
 17 typedef struct tagCallBackFunc
 18 {
 19     long funcType;
 20     PFunc proc;
 21 }COMMAND,*PCOMMAND;
 22 
 23 class Base
 24 {
 25 public:
 26 
 27     virtual PCOMMAND GetCommands(void);
 28     static COMMAND command[];
 29 
 30     long base_add(long a,long b){printf("in base_add()\n");return a+b;}
 31     long base_sub(long a,long b){printf("in base_sub()\n");return a-b;}
 32     long base_div(long a,long b){printf("in base_div()\n");return a/b;}
 33     long base_mul(long a,long b){printf("in base_mul()\n");return a*b;}
 34 };
 35 
 36 COMMAND Base::command[]={
 37                        {ADD,(PFunc)&Base::base_add},
 38                        {SUB,(PFunc)&Base::base_sub},
 39                        {MUL,(PFunc)&Base::base_mul},
 40                        {DIV,(PFunc)&Base::base_div},
 41                   };
 42 PCOMMAND Base::GetCommands()
 43 {
 44     return command;
 45 }
 46 
 47 class Derived:public Base
 48 {
 49 public:
 50     Derived(void){}
 51     ~Derived(void){}
 52     virtual PCOMMAND GetCommands(void){return command;}
 53 
 54     long add(long a,long b){printf("in add()\n");return a+b;}
 55     long sub(long a,long b){printf("in sub()\n");return a-b;}
 56     long div(long a,long b){printf("in div()\n");return a/b;}
 57     long mul(long a,long b){printf("in mul()\n");return a*b;}
 58 
 59     static COMMAND command[];
 60 };
 61 
 62 COMMAND Derived::command[]=
 63                    {
 64                        {ADD,(PFunc)&Derived::add},
 65                        {SUB,(PFunc)&Derived::sub},
 66                        {MUL,(PFunc)&Derived::mul},
 67                        {DIV,(PFunc)&Derived::div},
 68                        {0}
 69                     };    
 70 
 71 
 72 
 73 void  test(Base *control,FuncType funcType,long operand1,long operand2)
 74 {
 75     PCOMMAND pCommand = control->GetCommands();
 76     PCOMMAND pNowCommand=NULL;
 77 
 78     for(long i=0;pCommand[i].funcType;++i)
 79     {
 80         if(funcType == pCommand[i].funcType)
 81         {
 82             pNowCommand = &pCommand[i]; 
 83             break;
 84         }
 85     }
 86 
 87     if(pNowCommand)
 88     {
 89         long res = (control->*pNowCommand->proc)(operand1,operand2);
 90         printf("res=%d\n",res);
 91     }
 92 }
 93 
 94 int main()
 95 {
 96     Derived *=new Derived();
 97     Base *= (Base*)d;
 98     test(b,ADD,1,2);
 99 
100     Base *bb = new Base;
101     test(bb,MUL,1,2);
102     delete bb;
103     delete d;
104     return 0;
105 }

第89行是對指向類成員函數的指針的解析。

posted on 2010-12-15 14:00 呆人 閱讀(312) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構

<2010年12月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

導航

統計

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产美女高潮久久白浆| 羞羞漫画18久久大片| 猛干欧美女孩| 中国女人久久久| 亚洲国产精品一区| 欧美午夜一区二区| 久久综合伊人77777| 美女久久一区| 欧美一区二区性| 欧美激情视频给我| 久久久久久噜噜噜久久久精品| 男男成人高潮片免费网站| 午夜精品免费视频| 欧美高清视频在线播放| 久久男女视频| 国产精品高清在线观看| 欧美激情精品| 国内精品一区二区| 一区二区三区四区五区精品| 91久久久精品| 久久精品成人一区二区三区蜜臀 | 欧美国产日本高清在线| 国产精品系列在线| 亚洲精品美女91| 亚洲国产va精品久久久不卡综合| 亚洲欧美成人一区二区三区| 亚洲精品视频免费观看| 久久久久网站| 久久久伊人欧美| 国产美女一区| 亚洲在线视频一区| 亚洲一区二区少妇| 欧美日韩国产精品 | 亚洲成人在线视频播放| 午夜精品电影| 香蕉成人久久| 国产精品久久久久aaaa| 亚洲精品国产精品乱码不99| 亚洲欧洲日本专区| 免费成年人欧美视频| 美女主播一区| 在线观看91精品国产入口| 久久精品99国产精品日本| 久久精品视频在线免费观看| 国产偷国产偷精品高清尤物| 亚洲欧美高清| 久久国产婷婷国产香蕉| 国产日韩1区| 欧美中文在线字幕| 美女主播视频一区| 亚洲欧洲日产国产网站| 欧美精品18+| 99国内精品久久| 午夜久久电影网| 国产精品入口麻豆原神| 亚洲男人的天堂在线观看| 午夜免费在线观看精品视频| 国产精品一区2区| 欧美一区二区观看视频| 久久久亚洲精品一区二区三区| 国产伊人精品| 老司机久久99久久精品播放免费 | 亚洲国产欧美国产综合一区| 亚洲高清在线观看| 国产精品成人在线| 亚洲一区欧美激情| 久久久久网址| 亚洲激情成人| 欧美视频一区二区三区四区| 亚洲欧美国产日韩天堂区| 久久九九久精品国产免费直播| 激情久久久久久久久久久久久久久久| 久久久久中文| 亚洲精品乱码久久久久久蜜桃91| 一区二区三区欧美激情| 国产精品国产a| 久久aⅴ国产欧美74aaa| 亚洲第一二三四五区| 亚洲免费影视| 精品999在线观看| 欧美区二区三区| 午夜在线精品偷拍| 亚洲国产欧美在线人成| 午夜在线播放视频欧美| 亚洲国产成人91精品| 国产精品二区二区三区| 久久精品99无色码中文字幕| 亚洲欧洲在线一区| 久久av一区二区三区| 日韩视频永久免费| 国产情人节一区| 欧美韩日一区二区三区| 小黄鸭精品密入口导航| 亚洲人成网站精品片在线观看 | 欧美女激情福利| 久久国产精品99国产精| 亚洲伦伦在线| 久久综合影视| 亚洲欧美日韩中文视频| 18成人免费观看视频| 国产精品美女在线| 欧美精品18videos性欧美| 久久狠狠久久综合桃花| 亚洲精品午夜| 你懂的国产精品| 欧美一区二区三区日韩视频| 日韩视频在线一区二区三区| 国产一在线精品一区在线观看| 欧美日韩成人网| 久热国产精品| 久久国产高清| 性高湖久久久久久久久| 一区二区三区欧美在线| 亚洲缚视频在线观看| 美女999久久久精品视频| 欧美影院成年免费版| 中文久久精品| 亚洲美女91| 亚洲精品日韩一| 亚洲国产日韩一区| 娇妻被交换粗又大又硬视频欧美| 国产精品久久久久久久免费软件 | 亚洲精品一区二区三区樱花| 欧美.日韩.国产.一区.二区| 久久国产婷婷国产香蕉| 亚洲制服丝袜在线| 在线综合亚洲欧美在线视频| 日韩午夜在线播放| 日韩亚洲欧美一区二区三区| 亚洲日韩欧美视频一区| 91久久国产自产拍夜夜嗨| 亚洲国内精品在线| 欧美国产日韩精品| 久久青草欧美一区二区三区| 久久精品一二三| 欧美一区二区三区播放老司机| 一区二区三区视频在线| 一区二区三区久久| 亚洲图片欧洲图片日韩av| 在线一区二区三区四区| 亚洲少妇最新在线视频| 亚洲夜间福利| 亚洲欧美不卡| 亚洲欧美综合精品久久成人| 亚洲欧美日韩国产综合在线 | 欧美激情2020午夜免费观看| 欧美国产日韩精品| 欧美另类视频| 国产精品久久久久久久久动漫| 国产精品看片你懂得| 国产精品一区三区| 国产综合网站| 亚洲激情av在线| 一区二区三区蜜桃网| 亚洲女爱视频在线| 久久激情五月丁香伊人| 美女在线一区二区| 91久久综合亚洲鲁鲁五月天| 99精品视频免费全部在线| 亚洲天堂av在线免费观看| 午夜电影亚洲| 久久久精品2019中文字幕神马| 蜜臀久久久99精品久久久久久| 欧美剧在线免费观看网站| 国产精品久久网站| 精品99一区二区三区| 亚洲精选在线观看| 欧美一级大片在线免费观看| 美女国产一区| 一区二区三区产品免费精品久久75 | 欧美精品激情blacked18| 国产精品久久久久久久久久久久久| 国产欧美日韩免费看aⅴ视频| 在线成人av.com| 亚洲一区二区高清| 久久视频这里只有精品| 亚洲日本黄色| 欧美一区二区网站| 欧美片第一页| 一区二区三区在线不卡| 亚洲伊人久久综合| 欧美a一区二区| 亚洲专区在线视频| 蜜臀久久久99精品久久久久久| 国产精品久久久久永久免费观看| 亚洲大胆女人| 久久福利一区| 一二三区精品| 欧美大色视频| 国内欧美视频一区二区| 洋洋av久久久久久久一区| 久久久久久久波多野高潮日日| 亚洲日本免费| 久久综合导航| 国产日韩欧美一区二区| 亚洲一区三区视频在线观看| 91久久精品国产91久久性色tv | 午夜精彩视频在线观看不卡 | 亚洲精品之草原avav久久| 久久久亚洲人|