Buchempfehlung
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
Windows-Programmierung. Das Entwicklerhandbuch zur WIN32-API
"Der" Petzold, das über 1000 Seiten starke Standardwerk zum Win32-API - besonders nützlich u. a. bei der GUI-Programmierung in FreeBASIC! [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!

Tutorial

Type als Objekt - Das UDT-Tutorial Teil 1

von RedakteurMODSeite 5 von 8

Private/Public/Protected

Standardmäßig sind alle Elemente des bar-Types BefehlsreferenzeintragPublic, d.h. wir können sie lesen/schreiben oder aufrufen. Manchmal jedoch ist es besser, sie BefehlsreferenzeintragPrivate zu machen. Nehmen wir z.B. unser Element p_x. Momentan können wir schreiben 'Print *foo.p_x' und damit den Wert ausgeben, auf den es zeigt. Wir könnten es Private machen, damit nur die Methoden innerhalb der Variable 'foo' (Constructor, Destructor, Property, und die Methoden) darauf zugreifen können. So stellen wir sicher, dass wir nur auf p_x zugreifen können, indem wir Methoden zur Sicherheit verwenden. Würden wir z.B. 'DeAllocate(foo.p_x)' im Hauptprogramm schreiben, würde der Destructor bei Zerstören des Objekts versuchen, die Variable erneut freizugeben, was als 'doppelte Freigabe' bekannt ist. Wir ändern unseren Code wie folgt:

Type bar
  Declare Constructor()
  Declare Destructor()

  Declare Property x() As Integer
  Declare Property x(ByVal n As Integer)

  Declare Sub Mul5()
  Declare Function Addr() As Integer Ptr

Private:
  p_x As Integer Ptr
End Type

Wir fügen 'Print *foo.p_x' im Hauptprogramm ein und versuchen, es zu kompilieren. Es wird eine Meldung vom Compiler kommen: 'error 173: Illegal member access, found 'p_x' in 'Print *foo.p_x''.
Dies zeigt, dass der Compiler wirklich auf die Tatsache stößt, dass wir p_x private gemacht haben. Wird 'private:' oder 'public:' benutzt, folgen alle Elemente nach dieser Anweisung auch dieser Regel.
Hier ist ein eher sinnfreies Beispiel, einfach um die Syntax zu zeigen:

Type bar
Private:
  a As Integer
  b As Integer
Public:
  c As Integer
  d As Integer
Private:
  e As Integer
End Type

Im obigen Type sind die Elemente 'a', 'b' und 'e' private, 'c' und 'd' sind public.
BefehlsreferenzeintragProtected ist zwar definiert, hat allerdings noch keine Auswirkungen. Erst wenn FreeBASIC echte Klassen mit Vererbung beherrscht, wird dieser Befehl interessant.

 

Gehe zu Seite Gehe zu Seite  1  2  3  4  5  6  7  8  
Zusätzliche Informationen und Funktionen
  • Das Tutorial wurde am 06.09.2010 von RedakteurMOD angelegt.
  • Die aktuellste Version wurde am 05.09.2011 von AdministratorSebastian gespeichert.
  Bearbeiten Bearbeiten  

  Versionen Versionen