Einzelnen Beitrag anzeigen

relocate

Registriert seit: 26. Mai 2009
60 Beiträge
 
#1

Zugriff auf Private Variable aus abgeleiteter Klasse aus fremder Unit

  Alt 15. Feb 2013, 09:18
Delphi-Version: 5
Hallo,

über http://www.delphipraxis.net/102890-s...variablen.html bin ich auf das hier http://hallvards.blogspot.de/2004/06...te-fields.html gekommen.

Hier mißfällt mir etwas das OOP Konzept.
Um die Ursprungsklasse mit neuen Funktionen zu erweitern leite ich sie in einer neuen Unit ab, damit die Erweiterung möglich ist, bräuchte ich aber Zugriff auf dort als private deklarierte Variablen. Warum hat eine abgeleitete Klasse nicht vollen Zugriff auf die "Oberklasse". Vor allem, weshalb geht es innerhalb der gleichen Unit und in einer Fremden Unit nicht (strict private mal außen vor, spielt in der Version keine Rolle).

Den Hack zu nutzen halte ich für fragwürdig, auch wenn er hier in D5/D6 funktioniert, aber laut Blogkommentar funktioniert er nicht mehr in einer neueren Delphi Version (kann das jemand bestätigen) was eigentlich logisch ist, schließlich sollte es ja private sein (warum auch immer).

Ist jetzt kein Problem der Delphi Praxis, aber in dem Tutorial http://www.delphi-treff.de/object-pascal/vererbung/ steht, dass die Nachfahren alles vom Vorfahren erben, was in dem Beispiel mit TMensch und TBerufstätig etc. ja nur innerhalb der selben Unit gelten würde nach dem Konzept (probiert habe ich es noch nicht) also ist die Aussage ja insofern falsch, als dass sie ja nach dem Beispiel nur innerhalb der gleichen Unit funktioniert, was man ja auch mal schreiben könnte.

Gruß relocate

PS.: Im wesentlichen geht es darum, ob mal jemand testen kann, ob der Hack in späteren Delphiversionen noch funktioniert und wenn nicht, was man dann machen kann.
  Mit Zitat antworten Zitat