AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Klassen mit unterschiedlichen Parents verwursten

Ein Thema von transporter08 · begonnen am 7. Mär 2012 · letzter Beitrag vom 7. Mär 2012
Antwort Antwort
transporter08

Registriert seit: 7. Mär 2012
7 Beiträge
 
#1

Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 08:10
Hallo zusammen,

ich habe folgende Struktur bei einer Klassendefinition:

Basisklasse : TFooBase
davon abgeleitet: TFooClass1 = class(TFooBase), TFooClass2 = class(TFooBase)

jetzt möchte ich wiederum ein Set von gemeinsamen Eigenschaften und Funktionen
definieren, die in jede der abgeleiteten Klassen (TFooClass1/2) drinne sein soll.
In TFooBase haben sie in diesem Level (noch) nichts zu suchen, weil TFooBase
als Basis weiterer (anderwertiger) Ableitungen dienen soll.
Also so soll es in etwa aussehen:

???
Funktion1 virtual;
Funktion2 virtual;
???

TFooClass1
Funktion1 override;
Funktion2 override;

TFooClass2
Funktion2 override;

Ist das in der Form irgendwie machbar ?

Danke schonmal.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#2

AW: Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 08:21
Hallo und Willkommen in der DP ,

ja, das geht. Wenn ich Dich richtig verstanden habe, dann suchst Du das Schlüsselwort abstract.
Delphi-Quellcode:
type
  TBaseClass = class
  protected
    function Func1; virtual; abstract; //wird hier noch nicht implementiert
    function Func2; virtual; abstract; //s.o.
  end;

  TChild1 = class(TBaseClass)
  protected
    function Func1; override; //Implementation erfolgt erst hier
    function Func2; override;
  end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
transporter08

Registriert seit: 7. Mär 2012
7 Beiträge
 
#3

AW: Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 08:33
Nein, das ist leider nicht das was ich suche.

ich versuch's nochmal etwas zu verdeutlichen:

Eigentlich müssten (nur zum Verständnis)

Funktion1 virtual;
Funktion2 virtual;

in TFooBase aufgenommen werden, damit sich TFooClass1 und TFooClass2 beide auf den gleichen
Funktionsrumpf beziehen können.

Aber da TFooBase eine allgemeine Basisklasse darstellt, kann ich sie hier nicht aufnehmen,
sondern erst ab TFooClass1 bzw. TFooClass2. Kann ich ab diesem Level noch gemeinsame Dinge aufnehmen,
die von den abgeleiteten als Basis angesehen werden.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#4

AW: Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 08:36
Nur dass ich das richtig verstehe: die Basisklasse hat thematisch nichts mit den beiden Funktionen zu tun, die kommen erst in der ersten Ableitung ins Spiel (also TFooClass1 bzw. TFooClass2), stimmt das soweit?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
transporter08

Registriert seit: 7. Mär 2012
7 Beiträge
 
#5

AW: Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 09:05
Ja das ist korrekt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#6

AW: Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 09:07
In dem Fall würde ich einfach noch eine Klasse "dazwischenschieben", TFoo1 und TFoo2 erben dann von der und nicht mehr direkt von der Basisklasse.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.399 Beiträge
 
Delphi 12 Athens
 
#7

AW: Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 09:39
Zitat:
Klassen mit unterschiedlichen Parents verwursten
Das hatte ich erst falsch verstanden.
Stichwort: Mehrfachvererbung
Und sowas ginge nicht.

[edit]
Oder hab ich's richtig verstanden. :grubel:
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
transporter08

Registriert seit: 7. Mär 2012
7 Beiträge
 
#8

AW: Klassen mit unterschiedlichen Parents verwursten

  Alt 7. Mär 2012, 09:41
Die Zwischenklasse ist leider auch nicht möglich, weil TFooClass1 und TFooClass2 wiederum Basisklassen bilden, von denen an anderer Stelle Ableitungen stattfinden (nennen wir sie TFooClass1ZweigA und TFooClass2ZweigA (diese Ableitungen haben aber ihrerseits nichts mit Funktion1/Funktion2 zu tun). Die Funktion1/Funktion2 soll nur (gemeinsam nutzbar) in TFooClass1ZweigB bzw. TFooClass2ZweigB wenn möglich.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz