Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

Referenz - PROTECTED

Referenz-Navigation

 

Syntax:

TYPE TypeName
   PROTECTED:
   ' Deklaration geschützter Records

END TYPE

Typ: Schlüsselwort
Kategorie: Klassen

PROTECTED legt fest, dass die folgenden Deklarationen geschützt sein sollen, d. h. dass ein Zugriff nur von BefehlsreferenzeintragUDT-eigenen Prozeduren aus zulässig ist. Das Schlüsselwort ist in dieser Form nur dann zulässig, wenn mit der Kommandozeilenoption Befehlsreferenzeintrag-lang fb compiliert wurde (Standard).

Mit PROTECTED ist es möglich, den Zugriff auf UDT-Records einzuschränken. Der Zweck liegt darin, dass der Zugriff auf die entsprechenden Records nur noch über benutzerdefinierte Prozeduren ermöglicht wird, die eventuelle Fehler schon beim Zugriffsversuch abfangen, den Wert in ein besser verwertbares Format umwandeln, etc.

Der UDT wird regulär definiert. Innerhalb der Typen-Deklaration wird die Zeile

PROTECTED:

eingefügt, sobald ein folgende Deklarationen geschützt sein soll, d. h. wenn der Zugriff darauf eingeschränkt werden soll. PROTECTED gilt innerhalb des UDTs so lange, bis es durch das Schlüsselwort BefehlsreferenzeintragPUBLIC oder BefehlsreferenzeintragPRIVATE abgelöst wird.
Standardmäßig sind alle Records PUBLIC. Dies ist auch dann der Fall, wenn eine vorhergehende Typendeklaration mit PRIVATE oder PROTECTED abgeschlossen wurde.

Auf PUBLIC-Records kann aus jeder Programmsituation heraus zugegriffen werden; auf PRIVATE-Records dürfen nur UDT-eigene Prozeduren (BefehlsreferenzeintragSUBs, BefehlsreferenzeintragFUNCTIONs, BefehlsreferenzeintragPROPERTYs, BefehlsreferenzeintragOPERATORs, BefehlsreferenzeintragKlassen-Konstruktoren und BefehlsreferenzeintragKlassen-Destruktoren) zugreifen. PROTECTED-Records verhalten sich wie PRIVATE-Records, jedoch können auf sie auch Prozeduren zugreifen, die sich in UDTs befinden, welche vom Basis-UDT erben (siehe BefehlsreferenzeintragEXTENDS).
Beachten Sie, dass auch die Prozeduren eines UDTs PUBLIC, PROTECTED oder PRIVATE sein können.
Ein Zugriff auf einen geschützten Record von außerhalb einer UDT-eigenen Prozedur führt zu der Compiler-Fehlermeldung
Illegal member access

Es ist erlaubt, innerhalb eines UDTs beliebig viele PUBLIC-, PRIVATE- und PROTECTED-Blöcke einzurichten.

Beispiel:

Type mutter
  Private:
  x As Integer = 1

  Protected:
  y As Integer = 2

  Public:
  z As Integer = 3
End Type

Type kind Extends mutter
  dummy As Integer
  Declare Sub ausgeben()
End Type

Sub kind.ausgeben
  ' Print x  ' funktioniert nicht, da x PRIVATE für die Mutter-Klasse ist
  Print y
  Print z
End Sub

Dim As kind einKind
einKind.ausgeben
Sleep

Unterschiede zu QB: neu in FreeBASIC

Unterschiede zu früheren Versionen von FreeBASIC:

Unterschiede unter den FB-Dialektformen: nur in der Dialektform Befehlsreferenzeintrag-lang fb verfügbar

Siehe auch:
BefehlsreferenzeintragPRIVATE (UDT), BefehlsreferenzeintragPUBLIC (UDT), BefehlsreferenzeintragTYPE (UDT), BefehlsreferenzeintragTHIS, BefehlsreferenzeintragEXTENDS, BefehlsreferenzeintragObjektorientierung


Zusätzliche Informationen und Funktionen
  • Der Referenzeintrag wurde am 04.04.2008 von Redakteurnemored angelegt.
  • Die aktuellste Version wurde am 16.02.2013 von Redakteurnemored gespeichert.
  Versionen Versionen