我想问的是在看内存时,派生类自己的虚表中的函数指针中间多了几个字节,
这几个字节存的是什么?
先请看代码:
class B
{
public:
int _b;
virtual void fun1()
{
cout << "B::fun1()" << endl;
}
virtual void funb()
{
cout << "B::funb()" << endl;
}
};
class C
{
public:
int _c;
virtual void fun1()
{
cout << "C::fun1()" << endl;
}
virtual void func()
{
cout << "C::func()" << endl;
}
};
class D :public B, public C
{
public:
int _d;
virtual void fun1()
{
cout << "D::fun1()" << endl;
}
virtual void funb()
{
cout << "D::funb()" << endl;
}
virtual void func()
{
cout << "D::func()" << endl;
}
virtual void fund()
{
cout << "D::fund()" << endl;
}
};
int main()
{
B b;
C c;
D d;
d._b = 1;
d._c = 2;
d._d = 3;
b.fun1();
b.funb();
c.fun1();
c.func();
d.fun1();
d.funb();
d.func();
d.fund();
system("pause");
return 0;
}
我在内存窗口如下操作:取地址d,然后查看d的虚表指针,然后继续在内存窗口
用此地址查看虚表。在看反汇编对应各个虚函数的地址的时候,发现了下图中的问题,
哪位大神给我解答一下?最好易懂详细点。