C++ 虚函数列表应用

来源:互联网 发布:淘宝卖家进入 编辑:程序博客网 时间:2024/05/17 23:37
#include<iostream>using namespace std;class CAA{public:    virtual void A()    {        cout << "A()" << endl;    }    virtual void B()    {        cout << "B()" << endl;    }};class CBB : public CAA{public:    virtual void A()    {        cout << "C()" << endl;    }    virtual void D()    {        cout << "D()" << endl;    }};int main(){    CAA *p=new CBB;    //别名,定义一个返回值空,参数空的函数指针    typedef void (*Pfun)();    Pfun aa=(Pfun) *((int *)*(int *)p+0);//子类覆盖了父类的数值    Pfun bb=(Pfun) *((int *)*(int *)p+1);//指向父类第二个成员函数地址    Pfun cc=(Pfun) *((int *)*(int *)p+2);//指向子类第二个成员函数地址    Pfun dd=(Pfun) *((int *)*(int *)p+3);//代表结束标志    (*aa)();    (*bb)();    (*cc)(); //可以利用父类的指针去依次调用出虚函数列表中底层的D()函数    system("pause");    return 0;}

这里写图片描述

0 0
原创粉丝点击