Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.01.11;
Скачать: CL | DM;

Вниз

деструктор   Найти похожие ветки 

 
9899100   (2008-11-27 14:16) [0]

Подскажите,
я сделал свой класс
например TMyClass=class
               ....
              Destructor Down;
            end;

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


 
Сергей М. ©   (2008-11-27 14:19) [1]

Нет, в данном конкретном случае не является.

Более того, Free - это не деструктор, это метод класса, при выполнении которого вызывается виртуальный деструктор Destroy.


 
9899100   (2008-11-27 14:20) [2]

а в каком случае будет являться необходимым? если делать наследника от Tobject и иже с ними??


 
Kolan ©   (2008-11-27 14:21) [3]

А зачем тебе два деструктора? Это настораживает.


 
Ega23 ©   (2008-11-27 14:23) [4]

1. Free не является деструктором. Это обычная процедура, в которой стоит вызов деструктора Destroy.
2. TObject.Destroy - виртуальный. Соответственно, изначально будет вызов деструктора конечного потомка, а потом уже обратно будет развёрнута вся цепочка так, каким образом inherited вызывается.
3. Ради академического интереса можно деструктор с отличным от Destroy именем создать, и даже заставить это дело работать. Но геморроев на этом можно впоследствии словить - мама не горюй.


 
Сергей М. ©   (2008-11-27 14:23) [5]


> если делать наследника от Tobject и иже с ними?


Да.
Но при условии, что в методе-веструкторе любого из предков твоего класса осуществляются какие-либо действия.


 
Сергей М. ©   (2008-11-27 14:25) [6]


> если делать наследника от Tobject


Класс, объявленный как TMyClass=class, как раз им и является, несмотря на отсутствие явного указания предка.


 
Anatoly Podgoretsky ©   (2008-11-27 15:00) [7]


> а в каком случае будет являться необходимым? если делать
> наследника от Tobject и иже с ними??

Все классы наследуются от Tobject


 
Сергей М. ©   (2008-11-27 15:16) [8]


> 9899100


Да уж ..
Ты уж подумай про Даун-деструктор ..
Обязательность оного пока ничем не оправдана ..



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

Текущий архив: 2009.01.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
2-1228033675
snake-as
2008-11-30 11:27
2009.01.11
Разные PopupMenu в TreeView


2-1227696353
MAX
2008-11-26 13:45
2009.01.11
TreeView и ImageList


2-1227784613
9899100
2008-11-27 14:16
2009.01.11
деструктор


1-1205823627
denmin
2008-03-18 10:00
2009.01.11
Как передать значения из DLL в приложение?


15-1226651963
Поросенок Винни-Пух
2008-11-14 11:39
2009.01.11
Пятничное позитивище