多态虚函数表
来源:互联网 发布: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;}