- Код: Выделить всё
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;
Подскажите, как правильно.