В родителе есть 2 функции:
а(b: text); виртуальная - и в наследниках
a(b: string); статическая, только в родителе
При вызове в наследнике а('asdf'); почему-то ругается.
Код показывай, проверил у себя на простейшем примере - не ругается...
Viselica.rar ( 3.72 килобайт )
Кол-во скачиваний: 413
Процедуры LoadFromFile;
Самый "старый" родитель TPoint. Самый "молодой" ТBar. Ругается в Мейне на вызов процедуры с параметрами не того типа.
type
PTPoint = ^TPoint;
TPoint = object
// ...
procedure LoadFromFile(var f: text); virtual; overload;
procedure LoadFromFile(const FileName: string); overload;
end;
Почему без overload; ошибку не выдает?
Это смотря в каком режиме компилируешь. Если в {$mode delphi} - то как раз выдает.
а в наследниках overload писать не надо? (не ругается, просто)
У тебя в наследниках же нет второй версии (которая статическая), ты говорил, что она только в родителе. А Overload используется, чтобы дать понять компилятору, что в одном Object-е / Class-е есть несколько методов с одним именем.