Seite 4 von 4

Verfasst: 14.05.2006 11:32
von Heroglyph
Dazu muss ich auch mal meinen Senf dazugeben.
Das information hiding des objektorientierten Konzepts gibts ja nicht erst seit C++, auch viele prozedurale Sprachen unterstützen das schon (als prominentes Beispiel C).
Dort wird das so realisiert, dass man in einer Datei eine Variable im oberen Level als static deklariert und nur die Prozeduren innerhalb der Datei sie wie eine globale Variable behandeln dürfen (klappt auch mit Prozeduren).
Ich würde mir wünschen, wenn dieses Konzept auch seinen Weg in PureBasic finden würde; das sollte eigentlich nicht besonders schwer sein, da müssen imho nur Symboltabelle und Parser leicht modifiziert werden.

Damit wäre es jedenfalls möglich, geteilte Variablen zu verwenden, ohne Namen aus dem globalen Scope zu "verschwenden".
Das geht zwar prinzipiell jetzt auch, allerdings muss man, wenn man modular programmieren möchte, immer so komische, lange Namen für die geteilten Variablen verwenden, damit sie sich nicht mit potentiellen globalen überschneiden.

Verfasst: 14.05.2006 12:25
von jear
Heroglyph hat geschrieben:Ich würde mir wünschen, wenn dieses Konzept auch seinen Weg in PureBasic finden würde; das sollte eigentlich nicht besonders schwer sein, da müssen imho nur Symboltabelle und Parser leicht modifiziert werden.
Es würde wahrscheinlich genügen, das Schlüsselwort Shared bei jeder Definition zur Pflicht zu machen. Damit würde der jetztige ungute Zustand beseitigt, dass eine irgendwie definierte Variable des Hauptprogrammes mit den in Prozeduren als Shared definierten Variablen identisch wird, ohne dass man dies will.
Will man es, genügt die Definition per Shared.

Verfasst: 14.05.2006 12:54
von DarkDragon
Variablen werden nicht definiert, sondern
1.) Deklariert - Einem Datentyp zugewiesen
2.) Initialisiert - Wert zugewiesen

Konstanten, Strukturen, ... werden definiert.

Mit Shared/Protected/Global/Define(DefType)/... werden sie deklariert und sind dann vorhanden und bereit zum beschreiben.

Verfasst: 14.05.2006 13:19
von ts-soft
DarkDragon hat geschrieben:Variablen werden nicht definiert ...

...Define(DefType)/... werden sie deklariert und sind dann vorhanden und bereit zum beschreiben.
:mrgreen:

Verfasst: 15.05.2006 09:47
von Kaeru Gaman
ts-soft hat geschrieben:
DarkDragon hat geschrieben:Variablen werden nicht definiert ...

...Define(DefType)/... werden sie deklariert und sind dann vorhanden und bereit zum beschreiben.
:mrgreen:
...das ist wahrscheinlich Franglais... sollte wohl besser Declare heißen, wa?