Das ist dann leider unter Berücksichtigung der Umwandlung nutzlos:
Delphi-Quellcode:
var
A: TKiloGramm;
B: TGramm;
begin
A := 50;
B := A; // compiliert ohne irgendwelche Konvertierungen, dun dun dunnn :(
Diese Verwendung war aber auch nicht in den vier Vorgaben des Posts aufgeführt.
Zitat:
1. Die einzelnen Typen sollen sicher und eindeutig sein.
Gemeint ist, das, wenn man das ganze als Parameter an eine Methode übergibt, keine andere Maßeinheit
übergeben werden kann
Beispiel:
Procedure TuWas(const a:gramm); Wenn versucht wird, hier Kilogram zu übergeben, soll der Compiler meckern.
2. Rechenoperationen sollen möglich sein. D.h. Addition, Subtraktion, Division und Multiplikation
3. Vergleichsoperation sollen auch möglich sein.
4. Eine Möglichkeit, von einer Maßeinheit in eine andere Maßeinheit zu konvertieren/umzurechnen
Punkt 1 ist gegeben, für Punkt 2 und 3 muss TWeight noch etwas erweitert werden und Punkt 4 liegt als Beispiel vor. Daß eine direkte Zuweisung einer TGramm-Variable an eine TKilogramm-Variable vom Compiler verboten sein soll, kann ich da nicht entdecken. Eine korrekte Zuweisung muss natürlich über TWeight erfolgen, aber das ist ja auch schon im Beispiel gezeigt.