64,642
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class A
{
public :
virtual void Print()
{
cout << "A" << endl;
}
};
class B : public A
{
virtual void Print()
{
cout << "B" << endl;
}
};
int main(int argc, char *argv[])
{
A* obj = new B();
obj->Print();
return 0;
}
A、B类
---------------------------
vtable [0]
[1]
[...]
A* obj = new B();
obj->Print(); //相当于obj->vtable[0]();在编译阶段已经用B中的printf地址填充给[0]。