Announcement

Collapse
No announcement yet.

Problem mit "object"

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit "object"

    Kann mir jemand erklären, warum sich im folgenden Progrämmchen
    Plus und PlusV kompilieren lassen, PlusC aber nicht?<br>
    (Fehlermeldung bei Implementation von PlusC:
    Deklaration von 'PlusC' unterscheidet sich von vorheriger Deklaration)<br>
    Ich hab eigentlich gedacht, dass die const-Übergabe vom Compiler je nach Größe der
    übergebenen Parameter im wesentlichen wie in eine Wert- oder eine var-Übergabe
    behandelt wird, plus eben zusätzliche (Compilezeit-)Überprüfung der Konstantheit. Dann sollte es aber doch hier kein Problem geben.<br>
    Irgendwie liegt das Problem wohl daran, dass mein Objekttyp bei der Deklaration der Methoden
    noch nicht vollständig definiert ist, bei deren Implementation hingegen schon.
    Aber das trifft ja wieder für alle drei Methoden zu...
    <p>Danke im voraus, Uli.

    <pre>
    program Project2;
    {$APPTYPE CONSOLE}
    uses sysutils;

    type
    TGPoint = object
    x, y: Double;
    function Plus(p, q: TGPoint): TGPoint;
    function PlusC(const p, q: TGPoint): TGPoint;
    function PlusV(var p, q: TGPoint): TGPoint;
    end;

    { TGPoint }

    function TGPoint.Plus(p, q: TGPoint): TGPoint;
    begin
    Result.x := p.x + q.x;
    Result.y := p.y + q.y;
    end;

    function TGPoint.PlusC(const p, q: TGPoint): TGPoint;
    begin
    Result.x := p.x + q.x;
    Result.y := p.y + q.y;
    end;

    function TGPoint.PlusV(var p, q: TGPoint): TGPoint;
    begin
    Result.x := p.x + q.x;
    Result.y := p.y + q.y;
    end;

    begin
    // Hier Anwender-Code
    end.
    </pre>
Working...
X