2012-02-20 6 views
1

Я все еще немного смущен. Я спросил несколько дней назад, что если производные экземпляры классов ссылаются на его базовые классы .. у меня есть ответ, что «НЕТ, это не так, производные классы просто наследуют и содержат все члены базы ... , если это так, то как производные объекты класса сохраняются в памяти ??Как объекты производного класса выглядят в памяти?

ли адрес объекта производного класса дает какой-либо информации. о его базовом классе?

+1

Я думаю, что ответ на [C# - Как CLR организует память/ссылку во время наследования?] [1] отвечает на ваш вопрос. [1]: http://stackoverflow.com/questions/1385990/c-sharp-how-does-clr-organize-memory-reference-during-the-inheritance – Terkel

ответ

4

Здесь представляет собой article, который показывает представление памяти объекта. Поля базового и производного классов хранятся вместе. И методы помещаются в структуру таблицы методов

2

Как это на самом деле (физически) выложено является «деталью реализации». Структура (CLR) может указать это на некоторые детали, язык не делает этого вообще.

Но вы можете себе представить, это выглядит как [[base class members][derived class members]]

И ссылка на экземпляр просто указывает на начальный адрес базового класса.

Это тип ссылочного (базового или производного), который определяет, какая часть является «видимой».

Смежные вопросы