Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
2-1227959357
Pavel
2008-11-29 14:49
2009.01.11
Помогите оптимизировать код (выполнения в консоли)!


2-1227701460
2B
2008-11-26 15:11
2009.01.11
Переделать код


15-1226924798
@!!ex
2008-11-17 15:26
2009.01.11
Что это за музыка?


2-1227868679
Scot Storch
2008-11-28 13:37
2009.01.11
директива absolute


15-1226332584
Капибара из гостей
2008-11-10 18:56
2009.01.11
Вопрос по железу




   Наверх