Oppure

Loading
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 15:31
esteban
 
class Classe {

private:
   void * elemento; // puntatore void

}

Classe::~Classe() {

   delete elemento; // che è un puntatore void

}


Mi da il warning quando faccio delete elemento, dicendomi questo:
deleting ‘void*’ is undefined
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 12:34
Postato originariamente da 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; 
 
}


beh..magari non gli servono le funzionalità del template
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 :rotfl::rotfl:

comunque direi che si puo chiudere qui, stiamo andando :ot:
Ultima modifica effettuata da 01/12/10 20:07