注册 登录
编程论坛 C++教室

请教一个C++问题

紫凤双飞 发布于 2012-04-28 23:02, 293 次点击
程序代码:
#include<iostream>
using namespace std;

class A
{
    virtual void g()
    {
        cout<<"A::g()"<<endl;
    }
   
    virtual void f()
    {
        cout<<"A::f()"<<endl;
    }
};

class B : public A
{
    void g()
    {
        cout<<"B::g()"<<endl;
    }
   
/*    void f()
    {
        cout<<"B::f()"<<endl;
    }
*/   
    virtual void h()
    {
        cout<<"B::h()"<<endl;
    }
};

typedef void (*Fun)();

int main()
{
    B b;
    Fun pFun;
    for(int i = 0 ; i < 3 ; ++i)
    {
        pFun = (Fun)*((int*)*(int*)(&b) + i);
        pFun();
    }
}
请问一下这个程序,主要是pFun = (Fun)*((int*)*(int*)(&b) + i);
的含义,Thanks
1 回复
#2
yuccn2012-04-29 10:19
虚函数有个表的,取出函数地址然后调用
1