Рассмотрим:
class base
{
base();
virtual void func();
}
class derived : public base
{
derived();
void func();
void func_d();
int a;
}
main
{
base *b = new base();
sizeof(*b); // Gives 4.
derived * d = static_cast<derived*>(b);
sizeof(*d); // Gives 8- means whole derived obj size..why?
d->func_d();
}
В приведенном выше коде я исказил базовый указатель, который указывает на базовый объект на указатель производного класса. Мне интересно, как производный указатель имеет весь производный объект класса. Я могу вызвать функцию производного класса (только в производном классе). Я не понял эту концепцию.