多态原理探究(证明VPTR指针的存在以及初始化)

怎么证明vptr指针存在呢??用代码来说明。

#include "iostream"
using namespace std;

class AA
{
public:
    virtual void print()
    {
        printf("dddd\n");
    }
protected:
private:
    int b;
};

void main()
{
    printf("AA%d \n", sizeof(AA));
    AA  a; //

    system("pause");
}

 

虚函数表指针(VPTR)被编译器初始化的过程

vptr:一个具有虚函数类的对象所具有的隐藏的成员,指向该类的虚函数表.

父类对象的vptr指向是一直指向父类的.但子类的vptr指针最终是指向子类的,

当子类创建的时候,先调用父类构造函数,这个时候vptr指针是指向父类的,

 

posted @ 2016-11-15 12:11  ren_zhg1992  阅读(345)  评论(0)    收藏  举报