这是vtables上的程序。我对 vtables 和 v-pointers 的理解是否正确。
Class B
{
public:
virtual Void Hello()
{
cout<<"Hello Base";
}
};
class D: public B
{
public:
virtual void Hello()
{
cout<<"Hello Derived";
}
};
int main(int argc, char* argv[])
{
D *d1 = new D();
D *d2 = new D();
D *d3 = new D();
return 0;
}
在我看来,将有两个 vtable,只有一个 vptr。我说得对吗?