История изменений
Исправление Kuzy, (текущая версия) :
// фактически в памяти последовательно расположенны члены Derived и Base<Derived>
// this внутри getX указывает на начало Base,
// внутри getX, this кастуется к Derived*, полученный указатель указывает на начало Derived
Derived a;
a.getX();
// тоже самое, но в памяти только Base<Derived>, если кастануть this к Derived*,
// то полученный указатель будет указывать на мусор рядом с Base<Derived>, что и происходит
Base<Derived> b;
b.getX();
Исходная версия Kuzy, :
// фактически в памяти последовательно расположенны члены Derived и Base<Derived>
// this внутри getX указывает на смещение до Base,
// внутри getX, this кастуется к Derived*, полученный указатель указывает на смещение до Derived
Derived a;
a.getX();
// тоже самое, но в памяти только Base<Derived>, если кастануть this к Derived*,
// то полученный указатель будет указывать на мусор рядом с Base<Derived>, что и происходит
Base<Derived> b;
b.getX();