Я использую перегрузку оператора для записей в Delphi 2006. (Пожалуйста, не отвечайте на этот вопрос, сказав мне не делать этого.)
У меня есть два типа записей с перегруженным оператором неявным . Они оба только в реализации модуля, а не через интерфейс.
Моя проблема в том, что теперь, когда они взаимозависимы, я не знаю, как перенаправить объявление второго типа в компилятор. Я знаю, как это сделать с помощью функций, процедур и классов, но не с записями.
Вот упрощенный пример того, что я пытаюсь сделать:
implementation
type
TMyRec1 = record
Field1 : Integer;
class operator Implicit(a: TMyRec2): TMyRec1; // <---- Undeclared Identifier here.
end;
TMyRec2 = record
Field2: Integer;
class operator Implicit(a: TMyRec1): TMyRec2;
end;
class operator TMyRec1.Implicit(a:TMyRec2): TMyRec1;
begin
Result.Field1 := a.Field2;
end;
class operator TMyRec2.Implicit(a:TMyRec2): TMyRec2;
begin
Result.Field2 := a.Field1;
end;