![]() |
protected bei unterklassen
Also, protected verhält sich ja wie private, mit dem Unterschied, dass auch noch andere Unterklassen auf protected zugreifen können, egal in welcher Unit sie stehen. Richtig?
Aber WAS für Unterklassen sind denn hier gemeint? Wenn ich ne Unterklasse bestimme, mache ich sie doch verfügbar bei z.B. nem Buttonklick im Hauptfenster und lösche var aus dieser Unterklasse und füge sie in meiner Oberklasse ein. Ist das damit gemeint, oder steh ich total auf dem Schlauch? Schnelle Hilfe wäre mir gerade sehr lieb. :) |
Re: protected bei unterklassen
Unterklassen... Was du meinst sind Kindklasse ;)
Delphi-Quellcode:
Vielleicht solltest du dir mal ein
TKlasse = class
protected fMyInt: Integer; end; TKindKlasse = class(TKlasse) public property MyInt: Integer read fMyInt write fMyInt; end; ![]() |
Re: protected bei unterklassen
Unterklasse heißt hier abgeleitete Klasse.
z.b. uni1:
Delphi-Quellcode:
Unit2:
type
TKlasse1 = class private a: Integer; protected b: string; end; t
Delphi-Quellcode:
ype
TKlasse2 = class(Klasse1) protected c: Dozble; end; ... var t2: TKlasse2; ... t2.a := 1; //Hier kommt Fehler da private in TKlasse1 und nicht vererbt. t2.b := 'ddd'; t2.c := 1.5; |
Re: protected bei unterklassen
Hi.
Dein Beispiel verstehe ich jetzt gerade nicht, aber mit anderen Worten verhält sich protected wie private, mit dem Unterschied, dass auf protected Zugriffe auch von außerhalb des Moduls möglich sind, wenn und nur wenn der Zugriff aus einem Nachfahren dieser Klasse erfolgt. Gute Nacht marabu |
Re: protected bei unterklassen
Danke! mkinzler, genauso hab ich mir das auch vorgestellt. Dankeschön!
|
Re: protected bei unterklassen
Jo, der Code von mkinzler ist soweit nur funktionsfähig durch den Friend-Mechanismus - d.h. wenn die Instanz in der selben Unit wie der Klassendeklaration getätigt wird. Ein Zugriff von außen auf protected Elemente ist im Normalfall gesperrt.
@Threadersteller: Lies dir endlich mal das verlinkte OOP Tutorial durch! |
Re: protected bei unterklassen
Vielleicht ist das:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 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 by Thomas Breitkreuz