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:
   ' geschützte Deklarationen

END TYPE

Typ: Schlüsselwort
Kategorie: Programmorganisation

Legt fest, dass die folgenden Deklarationen PROTECTED sein sollen, d.h. dass ein Zugriff nur von BefehlsreferenzeintragTYPE-eigenen Prozeduren aus zulässig ist.
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.
Standardmäßig sind alle Deklarationen BefehlsreferenzeintragPUBLIC. Dies ist auch dann der Fall, wenn eine vorhergehende Typendeklaration mit BefehlsreferenzeintragPRIVATE abgeschlossen wurde.
Auf PUBLIC-Records kann aus jeder Programmsituation zugegriffen werden; auf PROTECTED-Deklarationen dürfen nur TYPE-eigene Prozeduren (BefehlsreferenzeintragSUBs, BefehlsreferenzeintragFUNCTIONs, BefehlsreferenzeintragPROPERTYs, BefehlsreferenzeintragOPERATORs, BefehlsreferenzeintragKlassen-Konstruktoren und BefehlsreferenzeintragKlassen-Destruktoren), und solche, die sich in TYPEs befinden, die vom Basis-UDT erben, zugreifen.
Ein Zugriff auf geschützte Deklarationen von außerhalb einer TYPE-eigenen Prozedur führt zu der Compiler-Fehlermeldung

Illegal member access

PROTECTED spielt vor allem in Verbindung mit BefehlsreferenzeintragVererbung eine Rolle. Records, die PRIVATE sind, können nicht von Kind-Klassen verwendet werden, wohingegen PUBLIC und PROTECTED Records auch durch die Kind-Klasse verwendet werden dürfen.

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 älteren FreeBASIC-Versionen:
- Bis einschließlich Version 0.22.0 hat PROTECTED überhaupt keine Funktion, ab der SVN Version 0.23.0 verhält es sich hingegen wie BefehlsreferenzeintragPRIVATE.

Unterschiede zu anderen FreeBASIC-Dialektformen:
- Nur gültig für Befehlsreferenzeintrag-lang fb

Unterschiede zu QuickBASIC:
- Neu in FreeBASIC

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


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