это своего рода домашнее задание. Для следующего кода
#include <iostream>
using namespace std;
class A
{
public:
virtual void f(){}
};
class B
{
public:
virtual void f2(){}
};
class C: public A, public B
{
public:
virtual void f3(){}
};
class D: public C
{
public:
virtual void f4(){}
};
int main()
{
cout<<sizeof(D)<<endl;
}
вывод: 8
Кто-нибудь может объяснить, как это 8 байтов? Если реализация vtable зависит от компилятора, что я должен ответить на такой вопрос в интервью? А как насчет виртуальных базовых классов?
РЕДАКТИРОВАТЬ: я работаю на 32-битной платформе.