Einzelnen Beitrag anzeigen

MStoll

Registriert seit: 15. Nov 2005
131 Beiträge
 
Turbo Delphi für Win32
 
#1

Zugriff auf protected-Felder eines Methodenparameter

  Alt 16. Jul 2012, 20:44
Hallo,

ich bin eben in Turbo Delphi 2006 Pro darüber gestolpert, dass ich in Klasse B (Kind von A) nicht auf die protected-Felder einer an B übergebenen Variable vom Typ A zugreifen konnte. Code-Beispiel:

Unit 1:
Code:
type TA = class(TObject)
          protected
             myField : TObject;
          end;
Unit 2:
Code:
type TB = class(TA)
          procedure copyFrom(src : TA);
          end;

...

procedure TB.copyFrom(src : TA);
begin
     self.myField := src.myField;
end;
Das ist jetzt vielleicht eine philosophische Frage. Aber wisst ihr, warum der Zugriff auf src.myField nicht erlaubt ist? Meines Erachtens nach sollte TB als Nachfahre von TA ja "Freund genug" sein, um auf die protected-Felder aller TA-Instanzen zugreifen zu können. So wie ja auch jede Instanz einer Klasse auf die private-Felder aller anderen Instanzen gleichen Typs zugreifen kann.
"Man soll nie mehr essen als mit Gewalt reingeht!" (n.n.)
  Mit Zitat antworten Zitat