Есть ли разница в поведении между вызовом конструктора и вызовом процедуры в записях Delphi? У меня есть образец кода D2010, который я хочу преобразовать в D2009 (который я использую). В примере используется конструктор без параметров, который не разрешен в Delphi 2009. Если я заменю простой беспроблемный вызов процедуры, существует ли какая-либо функциональная разница для записей?В чем разница между конструктором и процедурой в записях Delphi?
I.E.
TVector = record
private
FImpl: IVector;
public
constructor Create; // not allowed in D2009
end;
становится
TVector = record
private
FImpl: IVector;
public
procedure Create; // so change to procedure
end;
Насколько я могу видеть, что это должно работать, но я могу быть что-то отсутствует.
Это не выглядит как объявление записи для меня, а скорее как объявление объекта. Записи не имеют частных и общественных частей, ни конструкторов, ни методов. –
@ Larry Lustig, да, записи могут иметь частные и публичные части. И конструкторы, свойства и методы. Они не могут наследовать или реализовывать интерфейсы. Но у них могут быть помощники по записи. –
@Ларри, ты отстаешь на несколько лет. Записи получили методы, спецификаторы видимости и операторы в Delphi 2006. –