![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| rukudias |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 28.2.2007 Репутация: нет Всего: 0 |
Привет Всем!
есть код class X { private int j=0; } class Y:x { private int i=0; } X x=new Y(); фактически x смотрит на 4 байта памяти! как быть с остальными 4 которые ему достались от класса Y сборщик мусора часом не удалит сею память? |
|||
|
||||
| archeg |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 6.1.2007 Где: Киев Репутация: 11 Всего: 27 |
Эт простое приведение класса Y к класу X Среда при приведении (связаному с наследованием) не меняет сам класс. Она просто помечает что этот класс теперь типа Х, хотя на самом деле он все равно типа Y. Если упростить, она просто помечает что в данный момент члены класа У не видны. Тем не менее они есть и класс занимает тех же 8 байт. -------------------- ИМХО задница есть универсальный интерфейс. Ибо через задницу можно сделать абсолютно ВСЕ (bash.org.ru) Дядька всегда можно спросить в аське, если не задалбывать - не откажет И вообще, на самом деле я студент, и ненавижу обращение на "Вы") Тут все свои ;) |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
rukudias, мммм archeg все верно ессно сказал , но все же ваш вопрос не совсем ясен. Сборщик мусора в положенный ему судьбой срок удалит 8 байт ( размер обьекта клааса Y)....
-------------------- Жизнь - печальная штука. |
|||
|
||||
| rukudias |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 28.2.2007 Репутация: нет Всего: 0 |
после присвоения ссылка глядит на 4 байта.Не так ли?
а 4 байта обьекта Y походу весят в воздухе? сборшик как сними поступит? |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
нет , не так. Она указывает на ячейку 8 байт. просто вы не имеете доступ к 4 байт из них....упрощено говоря ))) -------------------- Жизнь - печальная штука. |
|||
|
||||
| mr.DUDA |
|
|||
|
3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Ссылка ссылается на объект X, содержащий 8 байт. Посему, сборщик грохнет те самые 8 байт. Даже если вы присвоите ссылку переменной типа object, она будет ссылаться на объект конкретного размера. -------------------- ![]() |
|||
|
||||
| nikitao |
|
|||
![]() Кот-программист ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1206 Регистрация: 30.8.2005 Где: Спб Репутация: 4 Всего: 26 |
mr.DUDA, вопрос несколько в другом. rukudias опасается , что если мы будем ссылаться на обьект типа Y через ссылку X , то GC удалит преждевременно часть обьекта класса Y 4 байта..... Короче ,rukudias, не бойся. такого не будет ;) Это сообщение отредактировал(а) nikitao - 12.11.2007, 01:38 -------------------- Жизнь - печальная штука. |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |