Мой кодПочему static_cast предоставляет разные ячейки памяти для одного и того же объекта?
class Parent { int a; };
class Child { int b; };
struct GrandChild : public Parent, public Child { int a, b, c; };
int main() {
GrandChild GC;
std::cout << "GrandChild's address is at : " <<&GC<<endl;
std::cout << "Child's address is at : " <<static_cast<Child*>(&GC)<<endl;
std::cout << "Parent's address is at : " <<static_cast<Parent*>(&GC)<<endl;
}
выход:
GrandChild's address is at : 0077F6F8
Child's address is at : 0077F6FC
Parent's address is at : 0077F6F8
Почему после static_cast ячейки памяти имеют противоречия, как и выше?
Интересно ... узнал что-то новое сегодня, спасибо за удивительный вопрос! – emlai
В стороне, эти имена типов крайне вводят в заблуждение! –
@LightnessRacesinOrbit: sry, я не понял, как :( – InQusitive