![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
конструктор / деструктор
начинающий_ © (2011-11-01 15:23:00)Пишу класс TMyClass наследник TObject.
TMyClass = class(TObject)
public
constructor Create(Database: TDBISAMDatabase);
destructor Destroy;
end;
нужно ли оверрайдить конструктор и деструктор, наследуясь от TObject?
Игорь Шевченко (2011-11-01 16:50:00) [1]
> Конструктору надо reintroduce.
The reintroduce directive suppresses compiler warnings about hiding previously declared virtualmethods
DiamondShark (2011-11-01 15:32:00) [2]TObject не имеет виртуальных конструкторов, соответсвенно, оверрайдить конструктор не только не нужно, но и не можно.
TObject имеет виртуальный деструктор Destroy, соответственно, оверрайдить его можно, а можно не оверрайдить. Если его не оверрайдить, то весь сторонний код, который полагается на виртуальный вызов унаследованного от TObject деструктора Destroy новый деструктор вызвать не сможет.
А вот нужнотебе это или не нужно -- целиком от тебя зависит.
Омлет (2011-11-01 15:31:00) [3]> Конструктору надо reintroduce.
А, впрочем, можно и не писать.
Омлет (2011-11-01 15:29:00) [4]Конструктору надо reintroduce.
Деструктору - override.
Юрий Зотов (2011-11-01 15:28:00) [5]Деструктор - обязательно, потому что он виртуальный. Если не заоверрайдите, получите замечание от компилятора.
Конструктор - не надо (да и не получится, даже если попробуете)