Nella introduzione alla programmazione ad oggetti in FreeBASIC abbiamo visto cosa sono le proprietà di un oggetto.
In questo nuovo articolo proveremo a scendere un po’ più nel dettaglio per imparare come il compilatore FreeBASIC tratta quel tipo di proprietà che hanno, per loro stessa natura, una lunghezza variabile: ovvero una quantità variabile di spazio di memoria occupato.
Vedremo quindi come lavorare con le stringhe e gli array di tipo variabile (variable-length array).
Lavorare con gli array di tipo variabile
In FreeBASIC le classi sono realizzate attraverso dei tipi di dato definiti da noi (user-defined type o UDT) che devono avere una dimensione fissa.
Nonostante questo, possiamo scegliere come proprietà un array di tipo variabile.
Per farlo dovremo però dichiarare, all’interno della definizione della classe, il nostro array dinamico utilizzando la parola-chiave any.
Questa parola-chiave comunica al compilatore FreeBASIC – come fosse un segnaposto – che le effettive dimensioni dell’array saranno specificate attraverso l’istruzione redim soltanto dopo aver creato un oggetto (istanza della nostra classe).
Esempio con una proprietà stringa e un array di tipo variabile
''definizione della classe
type mia_classe
''definizione delle proprietà
dim as string mia_stringa_variabile
dim as integer mio_array_variabile(any)
end type
''creiamo un oggetto del tipo della classe definita
dim as mia_classe mio_oggetto
''aggiorniamo la proprietà stringa
mio_oggetto.mia_stringa_variabile = "Oggi e' una bella giornata!"
''aggiorniamo la proprietà array
redim mio_oggetto.mio_array_variabile(1 to 5)
''stampa la stringa
print mio_oggetto.mia_stringa_variabile
''stampa la dimensione dell'array
print str(ubound(mio_oggetto.mio_array_variabile) - _
lbound(mio_oggetto.mio_array_variabile) + 1)
Nel prossimo articolo vedremo come in FreeBASIC viene implementato il concetto di incapsulamento, tipico della programmazione orientata agli oggetti, per una migliore gestione dell’accesso ai membri di una classe.

