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

Вниз

Почему не вызывается destructor?   Найти похожие ветки 

 
newbie2   (2006-06-01 16:36) [0]

поясните почему
TmyColl = class(TCollection)
public
property Items[Index: Integer]: TmyItem read GetItem; default;
...

если вызвать так:
myObj.myColl[i].myItem.Free;
TmyItem.Destroy - вызывается, а если так то нет:
myObj.myColl[i].Free;


 
Amoeba ©   (2006-06-01 16:49) [1]

Деструкторы всегда должны быть виртуальными. Просто добавь в объявление деструктора волшебное словечко override и все заработает как надо.


 
De   (2006-06-01 16:52) [2]

да он и так override


 
Amoeba ©   (2006-06-01 16:54) [3]


> De   (01.06.06 16:52) [2]
> да он и так override

Ты что, имел счасть видеть код автора вопроса, или есть он сам, что делаешь такое безаппеляционное завление?


 
Loginov Dmitry ©   (2006-06-01 18:26) [4]

Сомневаюсь, что при таком коде

myObj.myColl[i].myItem.Free;

вызывается TmyItem.Destroy


 
Amoeba ©   (2006-06-02 12:23) [5]


> Loginov Dmitry ©   (01.06.06 18:26) [4]
> Сомневаюсь, что при таком коде
>
> myObj.myColl[i].myItem.Free;
>
> вызывается TmyItem.Destroy

Free вызовет Destroy если последний, как это полагается, виртуальный. Если же программист по невнимательности или незнанию сделал деструктор статическим, то он, естественно, вызываться из Free не будет.



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

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

Наверх




Память: 0.45 MB
Время: 0.009 c
10-1120807425
L_Vic
2005-07-08 11:23
2006.06.18
Не могу получить в Delphi методы листа Excel


10-1120656353
Winni
2005-07-06 17:25
2006.06.18
Можно ли ( и как) пользоваться COM или OLE-технологией в Д3 (Word


10-1120640656
StealthMan
2005-07-06 13:04
2006.06.18
Перезагрузка функции в Com Object


1-1147251773
wirg
2006-05-10 13:02
2006.06.18
Вопрос по TREEVIEW


10-1120575391
Yurij-7
2005-07-05 18:56
2006.06.18
Word : Поиск и замена





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский