Hi,
kann es sein, dass die explizite Typenumwandlung nicht richtig klappt?
habe:
Delphi-Quellcode:
TBruch = record
z, n: integer;
class operator Explicit(a: TBruch): string;
class operator Implicit(a: TBruch): string;
end;
...
class operator TBruch.Explicit(a: TBruch): string;
begin
if a.z > a.n then
result := IntToStr(a.z div a.n) + '+' + IntToStr(a.z mod a.n) + '/' + IntToStr(a.n)
else
result := IntToStr(a.z) + '/' + IntToStr(a.n);
end;
class operator TBruch.Implicit(a: TBruch): string;
begin
result := IntToStr(a.z) + '/' + IntToStr(a.n);
end;
...
wenn ich später dann im Code schreibe,
dass ich ne explizite typenumwandlung will, führt er immer ne implizite durch... woran liegt das?
explizit:
s := string(b);
implizit:
s := b;
(s ist ein string und b ist vom typ TBruch)
in beiden Fällen wird die Implicit funktion, oder wie auch immer man so nen Ding nennt, was nen Operator überlädt ausgeführt!
*help*