vptr指针原理是:在C++中,每一个带有虚函数类的实例,都拥有一个虚函数指针——vptr,在类的对象初始化完毕后,它将指向虚函数表。虚函数表是一个存储虚成员函数指针的数据结构,是由编译器自动生成与维护的。存在虚函数时,每个对象都有一个指向虚函数的指针(vptr指针)。在实现多态的过程中,基类和派生类都有vptr指针。父类对象的vptr指向父类的虚函数表,子类对象的vptr指向子类的虚函数表。定义子类对象时,vptr先指向父类的虚函数表,在父类构造完成之后,子类的vptr才指向自己的虚函数表。这个vptr指针将位于类对象的首部,即作为第一个成员变量,处于类对象代表的内存块的前四个字节中。
>指向类成员函数的指针