- Код: Выделить всё
- Type
 TMyType = record
 id: integer;
 data: ^integer;
 end;
и я хочу для этого типа переопределить операторы +, -, *, / и в том числе присваивание. Сами понимаете, если переменные этого типа просто так присвоить друг другу, то присвоются адреса, а не значения. Если же попытаться переопределить оператор :=, то компилятор выдаёт такую ошибку:
Error: Impossible to overload assignment for equal types
хотя для арифметических операторов компилятор не ругается.
Переопределение операторов происходит вот так:
- Код: Выделить всё
- interface
 operator + (op1: TMyType; op2: TMyType): TMyType;
 operator := (op1: TMyType; op2: TMyType): TMyType;
Подскажите, как правильно.



