Bei "private const" stehen die Konstanten nur in einer konkreten Instanz (sprich Variable) zur Verfügung.
Folglich (und das hat mir der Delphi-Compiler recht deutlich mitgeteilt) kann man sie so nicht in den
Operatoren verwenden.
Also mein Compiler (10.2.3) findet das hier vollkommen OK:
Delphi-Quellcode:
TGewicht = record
private
FValue : Extended;
private const
GrammPerKilo = 1000.0;
GrammPerTonne = 1000.0*GrammPerKilo;
GrammPerMegat = 1000.0*1000.0*GrammPerTonne;
public
Class Operator Implicit(const Value:TTonne):TGewicht;
end;
class operator TGewicht.Implicit(const Value: TTonne): TGewicht;
begin
Result.FValue := Value*GrammPerTonne;
end;