Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

Освобождение памяти.   Найти похожие ветки 

 
TStas ©   (2005-09-09 16:14) [0]

Когда я освобождаю память от объекта, но удаляю его, как его предка, например:
obj1:TWinControl;
(Sender as TControl).Free;
Точно вся память освободится?


 
MBo ©   (2005-09-09 16:17) [1]

деструктор Destroy - виртуальный метод  так что вызовется деструктор именно нужного типа. К TControl приводить нет смысла.


 
Digitman ©   (2005-09-09 16:18) [2]


> Точно вся память освободится?


а в чем сомнения-то ?


> удаляю его, как его предка


это ты явно сморозил.
причем здесь вообще предок ?
ты уничтожаешь ОБЪЕКТ !
и при этом неважно, наследником какого класса является уничтожаемый объект

Free вызовет Destroy.
Destroy - виртуальный метод.


 
TStas ©   (2005-09-09 16:37) [3]

>Digitman
Наверно торможу. Что дистрой виртуальный метод, это понятно, как бы я ниначе его перекрыл. Но ведь Sender:TObject, то есть по адресу памяти, которым он является, найдется тип объекта и вызовется соответствующий деструктор?


 
Anatoly Podgoretsky ©   (2005-09-09 16:53) [4]

Вот наглядный пример возможностей ООП

var
 X : TStrings;
begin
 X := TStringList.Create; // создаем из наследника
 X.Free;  // будет вызван метод Destroy класса TStringList, а не TStrings, поскольку метод виртуальной и заменяет собой метод TStrings.Destroy, вероятнее всего TStringList.Destroy вызовет внутри метод предка, но тебе об этом беспокоиться не стоит
end;


 
Digitman ©   (2005-09-09 16:59) [5]


> TStas ©   (09.09.05 16:37) [3]


если ты перекрыл в наследнике метод Destroy, за свой диструктор можешь не волноваться - он обязательно будет вызван, как бы ни был "обозван" Sender (лишь бы Sender имел тип, соответствующий одному из элементов цепочки "предков")



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.047 c
1-1127309912
Zander1
2005-09-21 17:38
2005.10.16
Изменение размеров формы


2-1126848784
Lady
2005-09-16 09:33
2005.10.16
Запрос


2-1127104746
nik7777
2005-09-19 08:39
2005.10.16
Создать текстовый файл


4-1124183268
volser
2005-08-16 13:07
2005.10.16
Изменение рабочего стола


2-1127408995
Tirops
2005-09-22 21:09
2005.10.16
"Порядок видимости" Timage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский