多重继承的虚函数表访问例程

来源:互联网 发布:建筑漫游软件 编辑:程序博客网 时间:2024/06/05 03:23
/************************************************************************//* 多重继承的虚函数表访问例程                                             *//************************************************************************/#include <iostream>using namespace std;class Base1{public:virtual void F(){cout << "Base1::F()" << endl;}virtual void G(){cout << "Base1::G()" << endl;}virtual void H(){cout << "Base1::H()" << endl;}};class Base2{public:virtual void F(){cout << "Base2::F()" << endl;}virtual void G(){cout << "Base2::G()" << endl;}virtual void H(){cout << "Base2::H()" << endl;}};class Base3{public:virtual void F(){cout << "Base3::F()" << endl;}virtual void G(){cout << "Base3::G()" << endl;}virtual void H(){cout << "Base3::H()" << endl;}};class Derive : public Base1, public Base2, public Base3{public:virtual void F(){cout << "Derive::F()" << endl;}virtual void G1(){cout << "Derive::G1()" << endl;}};typedef void (*Func)(void);void main(){Func fun = NULL;Derive d;int** pVtab = (int**)&d;for (int i = 0; i < 3; i++){//Windows平台虚函数表的结束符:NULLfor (int j = 0; pVtab[i][j]; j++){fun = (Func)pVtab[i][j];fun();}}}

0 0