29/11/10 22:24
esteban
Ho semplicemente una variabile del tipo void * elemento. Come si fa il delete ad un puntatore void * ?
aaa
30/11/10 11:04
HeDo
delete elemento;
ma è meglio se posti il codice
aaa
30/11/10 17:02
mmm...se hai creato un puntatore void, evidentemente vuoi assegnargli qualche altro tipo di altro dato, come una classe che hai definito tu, tramite conversione.
Se fai :
void* puntatore = new void;
allora puoi usare delete, però non mi sembra molto sensato visto che void è un genere di dato non definito.
Se invece fai cosi :
void *puntatore = (void*)istanza_della_tua_classe;
allora il delete lo devi richiamare sull'istanza della tua classe.
Ultima modifica effettuata da 30/11/10 17:03
30/11/10 20:35
lorenzo
semplicemente in C++ non ha senso usare il tipo void * quando ci sono le classi template.
template <typename T>
class Classe
{
private:
T *elemento;
};//IL PUNTO E VIRGOLA ALLA FINE!
template <typename T>
Classe<T>::~Classe<T>()
{
delete elemento;
}
Ultima modifica effettuata da lorenzo 30/11/10 20:36
aaa
01/12/10 19:07
lorenzo
non si tratta di funzionalità, se esiste uno strumento adatto per fare una cosa perché non usarlo?
In C gli oggetti generici venivano gestiti tramite puntatore a valori void, in C++ si usano i template.
Non dirmi che non usi la STL solo perché non ne hai bisogno al 100%, la usi perché è comoda e perché è il core del C++.
aaa
01/12/10 20:05
nono, non sto dicendo questo.
mmmm..ti faccio un esempio pratico.
magari lui ha un membro static, e vuole che sia comune a tutte le istanze, non solo a quelle dello stesso tipo del template.
Oppure sta solo studiando le conversioni con void xD
comunque direi che si puo chiudere qui, stiamo andando
Ultima modifica effettuata da 01/12/10 20:07