多态虚函数表

来源:互联网 发布:floydwarshall算法 编辑:程序博客网 时间:2024/05/16 23:35
#include <iostream>class A{public:    virtual void f()    {        std::cout << "A::f()" << std::endl;    }    virtual void g()    {        std::cout << "A::g()" << std::endl;    }    virtual void h()    {        std::cout << "A::h()" << std::endl;    }};class B: public A {public:    virtual void f1()    {        std::cout << "B::f1()" << std::endl;    }    virtual void g1()    {        std::cout << "B::g1()" << std::endl;    }    virtual void h1()    {        std::cout << "B::h1()" << std::endl;    }};typedef void(*Fun)(void);int main(){    B b;    Fun f  = (Fun)*((int*)*(int*)(&b));   (*f)();  //A::f()    Fun g  = (Fun)*((int*)*(int*)(&b)+1); (*g)();  //A::g()    Fun h  = (Fun)*((int*)*(int*)(&b)+2); (*h)();  //A::h()    Fun f1 = (Fun)*((int*)*(int*)(&b)+3); (*f1)(); //B::f()    Fun g1 = (Fun)*((int*)*(int*)(&b)+4); (*g1)(); //B::g()    Fun h1 = (Fun)*((int*)*(int*)(&b)+5); (*h1)(); //B::h()    system("pause");    return 0;}