AGB  ·  Datenschutz  ·  Impressum  







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

Geerbter Getter für lokale Objekt-Konstante?

Ein Thema von Andreas13 · begonnen am 22. Jul 2020 · letzter Beitrag vom 24. Jul 2020
 
Andreas13

Registriert seit: 14. Okt 2006
Ort: Nürnberg
721 Beiträge
 
Delphi XE5 Professional
 
#4

AW: Geerbter Getter für lokale Objekt-Konstante?

  Alt 23. Jul 2020, 10:03
@himitsu: Danke Himitsu für Deine ausführlichen Erläuterungen. Alles scheint wesentlich komplizierter zu sein als die triviale Lösung durch einfaches manuelles Kopieren der „zu vererbenden“ Methoden im Quellcode wie z.B.:
Delphi-Quellcode:
Type
  TFunk_2 = Class(TObject)
    Strict Private
      CONST
        FGLTxt: String = 'Funktion mit ZWEI Variablen';
        Fn_Var: Integer = 2;

  Public
      Property GL : String Read Get_GLTxt;
      Property n_Var: Integer Read Get_n_var;
  End;

Function TFunk_2.Get_GLTxt: String;
Begin
  Result:= FGLTxt;
End;

Function TFunk_2. Get_n_var: Integer;
Begin
  Result:= Fn_Var;
End;
...
//------------------------------
Type
  TFunk_3 = Class(TFunk_2) // [edit]: und natürlich nicht von TObject
    Strict Private
      CONST
        FGLTxt: String = 'Funktion mit DREI Variablen';
        Fn_Var: Integer = 3;

  Public
      Property GL : String Read Get_GLTxt;
      Property n_Var: Integer Read Get_n_var;
  End;

Function TFunk_3.Get_GLTxt: String;
Begin
  Result:= FGLTxt; // das sollte automatisch per Vererbung funktionieren
End;

Function TFunk_3. Get_n_var: Integer;
Begin
  Result:= Fn_Var; // das sollte automatisch per Vererbung funktionieren
End;
Ich wünschte mir an dieser Stelle eine echte („biologische“) Vererbung, so daß auch die privaten Konstanten und ihre Methoden weitervererbt werden können, wobei der Inhalt der vererbten Konstanten in den Nachfahr-Klassen zur Entwicklungszeit im Quellcode aktuell belegt werden könnte und kein Kopieren, kein overload, kein override der Methoden notwendig wären, sondern nur die eine einzige Deklaration in der Basisklasse, die über alle Unterklassen hinweg mit den aktuellen Konstanten der Unterklassen funktioniert.

Brauchst du die Konstanten noch für was anderes oder könnte man bei einer Lösung auf die verzichten?
Am liebsten wären mir typisierte Variablen anstelle der Konstanten, welche ich bei der Klassendefinition mit ihren aktuellen Werten sofort belegen könnte. Aber das läßt der (mein XE5-) Compiler nicht zu. Den Wert der Konstanten FGLTxt und Fn_Var wollte ich weder als bloßen Kommentar handhaben, noch in den Constructor verschieben, sondern gleich am Anfang gut sichtbar und abrufbar darstellen, weil das für mich zur Entwicklungszeit bei der Vielzahl von abgeleiteten Klassen mit ähnlichen Gleichungen ein wichtiges Instrument der Fehlervermeidung & der Kontrolle darstellt.
Danke & Gruß, Andreas
Grüße, Andreas
Wenn man seinem Nächsten einen steilen Berg hinaufhilft, kommt man selbst dem Gipfel näher. (John C. Cornelius)

Geändert von Andreas13 (23. Jul 2020 um 10:51 Uhr)
  Mit Zitat antworten Zitat
 


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 12:16 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