Seite 1 von 1

Gültigkeit von PRIVATE Variablen

Verfasst: Mi, 22.10.2008 15:13
von i
Hallo,

ich habe im Buch nachgelesen und dort heisst es:
DIM PRIVATE VarName as TYPENNAME
Die Variable hat nur im Modul Gültigkeit.
Nun Frage ich mich: Warum ist, wenn ich Main aufrufe in Show_A i=1 (ok das weiß ich ;)). Aber warum ist, wenn ich danach Show_B aufrufe i= 0 und nicht 1 wie es doch im Buch steht und von der Logik her sein sollte?

Code: Alles auswählen

REM  *****  BASIC  *****

PRIVATE i AS INTEGER 'PUBLIC i ist in Show_B auch 0. Als GLOBAL funktioniert - soll es aber nicht sein

Sub Main
	i=1
	CALL Show_A()
End Sub

PRIVATE SUB Show_A()
	MSGBOX CSTR(i) 'i=1
END SUB

PUBLIC SUB Show_B()
	MSGBOX CSTR(i) 'i=0
END SUB

Re: Gültigkeit von PRIVATE Variablen

Verfasst: Mi, 22.10.2008 16:43
von hawe
Vielleicht weil das Buch nur was über die Gültigkeit der Variablen aussagt, aber nix über den Wert den eine Variable hat.
Sowohl SUB Show_A() als auch SUB Show_B() haben Zugriff auf i - i ist für beide ein gültiger/erreichbarer Speicherplatz.
warum die einmal 1 und ein andermal den Wert 0 hat müsstest Du eigentlich wissen - Du hast schließlich den Aufruf veranlasst?

Re: Gültigkeit von PRIVATE Variablen

Verfasst: Mi, 22.10.2008 16:59
von i
Ich habe das mit Java od. auch C++ gleich gesetzt. Ich weiß BASIC ist kein Java und das ist sicher auch der Grund...
Denn ich habe versucht Module als Klassen zu verstehen.
So aus dem Gedächtnis (es schon etwas her) ist es in C++ und Java doch so, das hat man einer privaten Variable einen Wert zugewiesen, behält sie diesen auch.

Re: Gültigkeit von PRIVATE Variablen

Verfasst: Mi, 22.10.2008 18:04
von hawe
Ja, aber nur innerhalb der Runtime in der der Wert gesetzt wurde.
Nach meiner Beobachtung initialisieren die Variablen mit jedem Run neu...