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

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>
            亚洲国产精品悠悠久久琪琪| 久久精品亚洲热| 午夜日韩在线观看| 亚洲一二三四久久| 亚洲欧美日韩国产一区二区| 亚洲欧美在线视频观看| 亚洲一区在线播放| 欧美专区日韩视频| 久久免费精品视频| 欧美激情亚洲另类| 亚洲午夜久久久| 久久久免费观看视频| 欧美精品久久一区二区| 欧美视频中文字幕在线| 国产香蕉97碰碰久久人人| 亚洲丰满在线| 亚洲一区二区在线播放| 欧美中文字幕在线视频| 亚洲承认在线| 亚洲精品国产精品乱码不99按摩| 亚洲精品一区二区三区樱花| 亚洲综合99| 欧美激情1区| 国产欧美精品国产国产专区| 亚洲国产精品视频| 亚洲伊人伊色伊影伊综合网| 看片网站欧美日韩| 亚洲视频香蕉人妖| 免费成人黄色片| 国产日韩欧美一区二区三区在线观看| 亚洲高清在线观看| 久久电影一区| 夜夜嗨网站十八久久| 久久久夜夜夜| 国产午夜精品视频免费不卡69堂| 一本色道久久综合狠狠躁篇怎么玩| 久久天堂国产精品| 亚洲一区日韩| 欧美午夜电影网| 日韩视频精品在线观看| 免费在线观看日韩欧美| 亚洲欧洲av一区二区| 欧美日韩在线另类| 亚洲精选成人| 亚洲高清成人| 久久亚洲综合色| 亚洲国产综合视频在线观看| 久久婷婷国产综合尤物精品| 国产伦精品一区二区三区在线观看 | 亚洲一区在线直播| 欧美日韩成人一区| 亚洲麻豆视频| 欧美寡妇偷汉性猛交| 久久国产精品亚洲va麻豆| 国产欧美一区二区三区沐欲| 欧美一区三区二区在线观看| 亚洲一区欧美| 国产夜色精品一区二区av| 久久精品免费| 欧美一站二站| 在线欧美视频| 亚洲国产精选| 欧美三级小说| 欧美一级专区| 欧美伊人影院| 好男人免费精品视频| 久久久免费精品| 久久人人看视频| 亚洲精品之草原avav久久| 亚洲精品一区二区三区在线观看| 欧美日韩一区二区在线| 亚洲小说春色综合另类电影| 亚洲午夜91| 韩日精品视频| 欧美激情中文字幕在线| 欧美日韩视频专区在线播放| 亚洲国产精品一区二区www在线| 久久一区二区精品| 91久久国产综合久久91精品网站| 亚洲国语精品自产拍在线观看| 欧美日本韩国一区二区三区| 午夜精品久久| 久久综合狠狠综合久久综青草 | 99pao成人国产永久免费视频| 欧美午夜精品电影| 久久爱www久久做| 久久先锋影音| 一区二区三区视频免费在线观看| 亚洲免费在线观看| 亚洲韩国青草视频| 亚洲在线视频一区| 最近中文字幕日韩精品| 亚洲国产精品www| 一二三四社区欧美黄| 国产一本一道久久香蕉| 日韩亚洲精品在线| 激情视频亚洲| 99精品视频免费观看视频| 国产视频综合在线| 91久久在线| 国内激情久久| 中日韩高清电影网| 亚洲三级免费| 久久久精品tv| 久久久久久久一区二区三区| 欧美日韩亚洲综合一区| 欧美高清不卡在线| 国产性天天综合网| 一本色道久久88精品综合| 在线观看av不卡| 午夜精品视频在线观看一区二区| 亚洲免费观看在线视频| 久久久av网站| 久久精品成人一区二区三区蜜臀 | 欧美一级大片在线观看| 欧美成人精品三级在线观看 | 夜夜嗨av一区二区三区| 亚洲国产成人精品女人久久久 | 黑人巨大精品欧美一区二区 | 欧美一级电影久久| 欧美午夜理伦三级在线观看| 欧美激情综合| 在线免费高清一区二区三区| 欧美一区二区私人影院日本| 亚洲综合国产| 国产精品成人久久久久| 99天天综合性| 亚洲欧美国产制服动漫| 亚洲区国产区| 99视频+国产日韩欧美| 亚洲精品视频在线播放| 欧美制服丝袜第一页| 欧美与欧洲交xxxx免费观看| 欧美午夜国产| 午夜精品久久| 久久久久久亚洲精品中文字幕 | 欧美国产日韩精品免费观看| 一本色道久久综合亚洲精品不卡| 亚洲日韩视频| 欧美精品亚洲一区二区在线播放| 欧美成人一区二区在线| 亚洲国产精品va在线看黑人| 欧美不卡视频一区发布| 亚洲国内精品| 亚洲欧美日韩国产中文在线| 国产精品美女久久久久av超清| 一区二区三区.www| 欧美在线免费| 在线精品国产欧美| 欧美成人精品在线播放| 亚洲麻豆国产自偷在线| 亚洲欧美国产精品桃花| 国产日韩欧美在线观看| 久久久国产午夜精品| 亚洲欧洲日本国产| 午夜影院日韩| 在线观看欧美精品| 欧美裸体一区二区三区| 亚洲午夜激情| 免播放器亚洲一区| 日韩一级成人av| 国产欧美日韩亚州综合| 免费观看日韩av| 亚洲一区二区三区四区视频| 久久网站免费| 一本色道久久综合一区| 国产日韩欧美亚洲一区| 久久在线视频| 中文av一区二区| 美女视频网站黄色亚洲| 99视频有精品| 国内精品久久久久久影视8| 欧美aⅴ一区二区三区视频| 亚洲午夜精品国产| 亚洲国产一区在线| 久久激情久久| 亚洲图片自拍偷拍| 亚洲狠狠丁香婷婷综合久久久| 国产精品男gay被猛男狂揉视频| 久久久久久91香蕉国产| 夜夜躁日日躁狠狠久久88av| 久久亚洲春色中文字幕| 亚洲一区二区三区四区在线观看| 狠狠色丁香婷婷综合| 国产精品久久久久久久久免费樱桃 | 欧美香蕉视频| 乱中年女人伦av一区二区| 亚洲综合二区| 日韩视频一区二区| 欧美成人在线免费观看| 久久se精品一区二区| 亚洲欧美一区二区三区极速播放| 亚洲欧洲精品天堂一级| 狠狠88综合久久久久综合网| 欧美一站二站| 国产精品视频yy9299一区| 免费成人性网站| 久久久国产视频91| 香蕉成人久久| 亚洲欧美在线一区二区|