Что означает "inherited" ?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
trifon
постоялец
Сообщения: 135
Зарегистрирован: 24.12.2006 11:08:35

Что означает "inherited" ?

Сообщение trifon »

Увидал в JEDI-SDL такую конструкцию

Код: Выделить всё

destructor TSDLTicks.Destroy;
begin

  inherited;
end;

Вопрос: что означает "inherited", нужно ли вставлять его в destructor и для чего?
trifon
постоялец
Сообщения: 135
Зарегистрирован: 24.12.2006 11:08:35

Сообщение trifon »

Вобщем можете не отвечать я в мануале прочёл.
Странно нафига это вставили в TSDLTicks, если он не от кого не унаследован.
MylnikovDm
постоялец
Сообщения: 103
Зарегистрирован: 15.02.2007 20:26:10
Откуда: Челябинск

Сообщение MylnikovDm »

Это обычная практика в программировании на Object Pascal. Это сейчас TSDLTicks ни от кого не унаследован, но в будущем у него может появиться предок. Поэтому чтобы потом не править код часто зарание вставляют inherited. В том числе это делает и функция автогенерации кода в IDE.

Если у класса нет предка, либо если у предка нет такого метода, то строка inherited будет компилятором проигнорированна.
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Как же ни от кого не унаследован?
А TObject?

Не стоит забывать:
TMyClass = class <...>
на самом деле означает
TMyClass = class (TObject) <...>
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

На самом деле, если метод состоит только из вызова inherited, и не планируется ничего добавлять, то его можно вообще удалить вместе с объявлением. От этого работа программы не изменяется, а читабельность кода улучшается...
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Если у класса нет предка,

У класса *не может* не быть предка (единственное исключение - TObject)
Ответить