Недочёт в документации

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

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

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

Недочёт в документации

Сообщение Cheb »

Не совсем очевидный момент в https://wiki.freepascal.org/Inherited
:
нет примера с функциями, из за чего не ясно, что формат вызова должен быть

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

Result:= inherited;

а не

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

inherited;


Неочевидно, поскольку параметры и название метода можно опускать, то может показаться, что

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

inherited; 

вам и в ваш Result само запишет, и сопельки подотрёт.
Забывчивый я поимел +полчаса отладки.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

А что, в каком-либо ином языке в подобных случаях можно обойтись без прямого присваивания результату функции или конструкций типа return super(); ?
Аватара пользователя
serbod
постоялец
Сообщения: 449
Зарегистрирован: 16.09.2016 10:03:02
Откуда: Минск
Контактная информация:

Сообщение serbod »

Cheb писал(а):нет примера с функциями

Теперь есть. =)
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

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

Сообщение Cheb »

Теперь есть. =)

О, круто :)
Теперь добавить ещё вариант

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

function TMyClass.GetObject(Index: Integer): TObject;
begin
  // You can omit function name and parameters
  // but you must take care of the result.
  Result := inherited; 
end;
Ответить