Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: gegenseitiger Zugriff von zwei abgeleiteten Klassen

  Alt 11. Nov 2010, 23:53
Interessant wirds erst, wenn es einen Unterschied macht, wer gegen wen kämpft. Siehe hierzu:
http://www.christian-rehn.de/2009/08/31/multimethoden/
http://www.christian-rehn.de/2010/01...iple-dispatch/


mfg

Christian
Die Anforderung aus dem Link würde ich so umsetzen.
Da kann auch jeder mit jedem und die lästige Forward-Deklaration fällt auch weg.
Delphi-Quellcode:
type
  TThing = class
    procedure CollideWith( Thing : TThing );
  end;

  TShip = class( TThing )
  end;

  TAsteroid = class( TThing )
  end;

  TBase = class( TThing )
  end;

  TThingCollisionHelper = class helper for TThing
    procedure CollideWith( Thing : TShip ); reintroduce; overload;
  end;

  TShipCollisionHelper = class helper for TShip
    procedure CollideWith( Thing : TShip ); reintroduce; overload;
    procedure CollideWith( Thing : TAsteroid ); reintroduce; overload;
    procedure CollideWith( Thing : TBase ); reintroduce; overload;
  end;

  TAsteroidCollisionHelper = class helper for TAsteroid
    procedure CollideWith( Thing : TShip ); reintroduce; overload;
    procedure CollideWith( Thing : TAsteroid ); reintroduce; overload;
  end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat