ich habe in meiner DXE LIB "aufgeräumt" und die internen Methoden umdeklariert von EXPORTED nach PROTECT.
Es ging mir darum das die "internen" Methoden nicht vom User genutzt werden sollten ... auch nicht wenn er eine Sub Class erstellt !
nun steht unter PROTECT
Frage : bedeutet das, mit Sub Classing, die PROTECT Methoden "sichtbar" werden ?Die Member-Variablen und Methoden, welche nach PROTECTED: deklariert sind, sind nur innerhalb des Programmcodes für die Methoden der deklarierten Klasse und ihrer zukünftigen Subklassen sichtbar und können nur innerhalb von diesen Methoden benutzt werden.
nun gibt es ja noch HIDDEN
Frage : wäre also HIDDEN noch restriktiver als PROTECT ?Die Member-Variablen und Methoden, welche nach HIDDEN: deklariert sind, sind nur innerhalb des Programmcodes für die Methoden der deklarierten Klasse sichtbar und können nur innerhalb von diesen Methoden abgefragt bzw. aufgerufen werden.
Sie sind weder in Subklassen noch im restlichen Programm sichtbar.
nun habe ich mir den Demo Code angesehen
Code: Alles auswählen
CLASS classA
VAR varA // Sichtbarkeit ist HIDDEN:
EXPORTED:
VAR varB, varC // Global sichtbar
METHOD methodA, methodB
HIDDEN:
VAR varD, varE // Nur in Methoden von ClassA
METHOD methodC, methodD // sichtbar
ENDCLASS