- Код: Выделить всё
procedure SetDefaultValue(DefValue:integer);
procedure SetDefaultValue(DefValue:real);
procedure SetDefaultValue(DefValue:string);
procedure SetDefaultValue(DefValue:char);
procedure SetDefaultValue(DefValue:boolean);
Аналогичные конструкции можно видеть и в родных подключаемых модулях Lazarus, например fpjson. При этом, как я понимаю, будет вызвана та подпрограмма, в аргументах которой указана переменная того же типа, что и переданная в вызове процедуры. Почему это работает, несмотря на отсутствие директивы overload? Когда эту директиву нужно использовать, а когда можно (или нужно) опустить?
Вторая ситуация: Процедуры объявлены в родительском классе
- Код: Выделить всё
procedure SetDefaultValue(DefValue:integer);dynamic;abstract;
procedure SetDefaultValue(DefValue:real);dynamic;abstract;
procedure SetDefaultValue(DefValue:string);dynamic;abstract;
procedure SetDefaultValue(DefValue:char);dynamic;abstract;
procedure SetDefaultValue(DefValue:boolean);dynamic;abstract;
И по одной переопределены в пяти классах потомках, с дерективой override. Будет ли работать такая конструкция и, если нет, то почему?