Referenz - PROTECTED
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
TYPE-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
PUBLIC. Dies ist auch dann der Fall, wenn eine vorhergehende Typendeklaration mit
PRIVATE abgeschlossen wurde.
Auf PUBLIC-Records kann aus jeder Programmsituation zugegriffen werden; auf PROTECTED-Deklarationen dürfen nur TYPE-eigene Prozeduren (
SUBs,
FUNCTIONs,
PROPERTYs,
OPERATORs,
Klassen-Konstruktoren und
Klassen-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
Vererbung 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()
SleepUnterschiede 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
PRIVATE.
Unterschiede zu anderen FreeBASIC-Dialektformen:
- Nur gültig für
-lang fb
Unterschiede zu QuickBASIC:
- Neu in FreeBASIC
Siehe auch:
PRIVATE (UDT),
PUBLIC (UDT),
TYPE (UDT),
EXTENDS
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||




FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!
Versionen