现在的位置: 首页 > 综合 > 正文

遍历虚函数表调用函数

2012年06月12日 ⁄ 综合 ⁄ 共 483字 ⁄ 字号 评论关闭
#include <iostream.h>
class M
{
 public:
  virtual void f1(){cout<<"f1()"<<endl;}
  virtual void f2(){cout<<"f2()"<<endl;}
  virtual void f3(){cout<<"f3()"<<endl;}
  virtual void f4(){cout<<"f4()"<<endl;}
  virtual void f5(){cout<<"f5()"<<endl;}
  virtual void f6(){cout<<"f6()"<<endl;}
  virtual void f7(){cout<<"f7()"<<endl;}
  virtual void f8(){cout<<"f8()"<<endl;}
};
int main(){
 typedef void(*fun)(void);
 fun pf=NULL;
 M m;
 int* p;
 p=(int*)*(int*)(&m);
 while(*p!=NULL){
  pf=(fun)(int*)(*p);
  pf();
  p++;
 }
 return 0;
}

抱歉!评论已关闭.