Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Aufrufkontext von protected

  Alt 7. Dez 2017, 15:55
B greift in der der Unit "extern" auf eine Instanz von B zu, wo B deklariert ist, also hat es die unit-lokalen Rechte, wo alles Lokale wie "public" ist (außer bei Strict).
B greift auch "extern" auf eine Instanz von B zu, wo B aber nicht deklariert ist, also hat es die "realen" Rechte, wo es natürlich Protected ist.


Delphi-Quellcode:
type
  TEditAccess = class(TEdit);

TEditAccess(EineEditInstanz).EineProtectedMethode;

Wie DeddyH schon sagte:
Wenn du direkt auf diese Methode zureifst (Self.DoStuff ), dann siehst du es mit den inneren Rechten der eigenen Klasse, wo es Protected ist, also für dich immer wie public.
Du greifst aber extern auf die Funktion einer "anderen" Instanz drauf zu.

Mit strict protected würde auch B knallen, da damit der unit-lokale Einfluss gebugfixt wurde.
Innerhalb einer Unit ist Alles, was dort deklariert wurde, wie public (mit Ausnahme der Strict-Private und Strict-Protected).
$2B or not $2B

Geändert von himitsu ( 7. Dez 2017 um 16:02 Uhr)
  Mit Zitat antworten Zitat