guylmaster
12-11-2010, 18:18
Salve avrei un problema riguardo la realizazione di una lista con cursore.
Per chi non sapesse cos'è non è altro che una lista colleggata ma sviluppata in un array che funge da spazio per tutte le liste che si dichiareranno nel programma.
Il problema è proprio qui, l'oggetto lista avrà dichiarato dentro un array spazio di tipo static, in modo che ogni volta che crei un nuovo oggetto di tipo lista si possa condividere lo spazio. Il problema sorge però nell'inizializazione dello spazio.
Se inizializzo l'array nel costruttore dell'oggetto ogni nuovo oggetto che creo mi cancella tutto i dati degli oggetti precedenti e questo non è buono. Del resto non posso nemmeno lasciare all'utente l'onere di richiamare il metodo di inizializzazione perchè sarebbe una cosa "poco pulita".
Voi cosa consigliate? non c'è un modo dentro la classe per dire che se la variabile statica è appena stata creata che venga inizializata con un apposita funzione? Non c'è nessun modo quindi per accorgersi se la variabile statica è stata creata in precedenza o è stata appena creata e nel caso regolarsi di conseguenza con il lancio di una funzione di inizializazione?
Vi ringrazio in anticipo per l'attenzione,
Guylmaster.
Per chi non sapesse cos'è non è altro che una lista colleggata ma sviluppata in un array che funge da spazio per tutte le liste che si dichiareranno nel programma.
Il problema è proprio qui, l'oggetto lista avrà dichiarato dentro un array spazio di tipo static, in modo che ogni volta che crei un nuovo oggetto di tipo lista si possa condividere lo spazio. Il problema sorge però nell'inizializazione dello spazio.
Se inizializzo l'array nel costruttore dell'oggetto ogni nuovo oggetto che creo mi cancella tutto i dati degli oggetti precedenti e questo non è buono. Del resto non posso nemmeno lasciare all'utente l'onere di richiamare il metodo di inizializzazione perchè sarebbe una cosa "poco pulita".
Voi cosa consigliate? non c'è un modo dentro la classe per dire che se la variabile statica è appena stata creata che venga inizializata con un apposita funzione? Non c'è nessun modo quindi per accorgersi se la variabile statica è stata creata in precedenza o è stata appena creata e nel caso regolarsi di conseguenza con il lancio di una funzione di inizializazione?
Vi ringrazio in anticipo per l'attenzione,
Guylmaster.