Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kann eine Klasse verschiedene Typen handeln? (https://www.delphipraxis.net/114087-kann-eine-klasse-verschiedene-typen-handeln.html)

hitzi 19. Mai 2008 15:48


Kann eine Klasse verschiedene Typen handeln?
 
Hallo,

kann eine Klasse verschiedene Typen verarbeiten? Ich zeig mein Vorhaben mal besser an einen Beispiel:
Delphi-Quellcode:
TValueInt = class(TObject)
private
  fValue : Integer;
public
  constructor Create(Value : Integer);
end;

TValueString = class(TObject)
private
  fValue : string;
public
  constructor Create(Value : string);
end;

TValue = Class(TValueInt aber auch TValueString geht das?)
private
public
  constructor Create(Value : Integer);
  constructor Create(Value : string); override;
end;
Am Ende möchte ich einfach nur zum Beispiel value := TValue.Create('Test') sagen können und die entsprechende "Unterklasse" wird automatisch ausgewählt.

Geht so was?


Viele Grüße

Corpsman 19. Mai 2008 15:51

Re: Kann eine Klasse verschiedene Typen handeln?
 
Ja und Nein

du könntest ne Abstracte Basisklasse machen und dann von beiden Ableiten

damit dann deine andere Createn und dann immer mit Typecasts arbeiten

Phoenix 19. Mai 2008 15:53

Re: Kann eine Klasse verschiedene Typen handeln?
 
Nein. So geht das nicht.

Du müsstest Deine beiden Valueklasse von einer gemeinsamen Basisklasse ableiten (die am besten nicht TObject sind) und dann mittels dem Factory-Pattern die richtige Instanz erzeugen und aus der Factory zurückgeben.

Den Vorfahren einer Klasse kannst Du nicht dynamisch oder gar zur Laufzeit ändern. Das muss schon zur Compiletime feststehen und ab da isses fix.

RavenIV 19. Mai 2008 15:57

Re: Kann eine Klasse verschiedene Typen handeln?
 
Mehrfachvererbung gibt es in Delphi nicht direkt.
Das geht nur bei Interfaces.

Such mal hier im Forum nach "Mehrfachvererbung" oder so.
Es gibt schöne Beiträge, wo das super erklärt ist.

hitzi 20. Mai 2008 13:58

Re: Kann eine Klasse verschiedene Typen handeln?
 
Danke für die Tipps und Hinweise. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz