Ciao
Overloading destructor C++
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Overloading destructor C++
Ha senso e sarebbe possibile in C++ eseguire l'overload del distruttore ?
Ciao

Ciao
Re: Overloading destructor C++
No, in C++ non è possibile fare l'overloading del distruttore, che deve essere unico in una classe.
Se ha senso? Ma perchè avere due distruttori? Per rilasciare alcune risorse in un distruttore e delle altre diverse nell'altro? Puoi raggiungere tutto ciò con un flag booleano nel distruttore. Altre ragione per l'overloading non me ne vengono in mente
Se ha senso? Ma perchè avere due distruttori? Per rilasciare alcune risorse in un distruttore e delle altre diverse nell'altro? Puoi raggiungere tutto ciò con un flag booleano nel distruttore. Altre ragione per l'overloading non me ne vengono in mente
- SuperStep
- Entusiasta Emergente

- Messaggi: 2037
- Iscrizione: lunedì 19 dicembre 2011, 16:26
- Desktop: Unity
- Distribuzione: Ubuntu 16.04 LTS x86_64
- Sesso: Maschile
- Località: Somma Vesuviana (NA)
Re: Overloading destructor C++
non è possibile passare parametri alla keyword delete dopo l'indirizzo
infatti è così
e non così
quindi fare l'overloading non è possibile a prescindere
infatti è così
Codice: Seleziona tutto
delete somePointerAddress
Codice: Seleziona tutto
delete somePointerAddress()
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Re: Overloading destructor C++
Francamente il tuo esempio non l'ho capito. Se stavi rispondendo a me io intendevo un'altra cosa:SuperStep [url=http://forum.ubuntu-it.org/viewtopic.php?p=4883291#p4883291][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:non è possibile passare parametri alla keyword delete dopo l'indirizzo
infatti è cosìe non cosìCodice: Seleziona tutto
delete somePointerAddressquindi fare l'overloading non è possibile a prescindereCodice: Seleziona tutto
delete somePointerAddress()
Codice: Seleziona tutto
if(flag)
delete risorsa1;
else
delete
risorsa2;
- SuperStep
- Entusiasta Emergente

- Messaggi: 2037
- Iscrizione: lunedì 19 dicembre 2011, 16:26
- Desktop: Unity
- Distribuzione: Ubuntu 16.04 LTS x86_64
- Sesso: Maschile
- Località: Somma Vesuviana (NA)
Re: Overloading destructor C++
non rispondevo a te ma a @difesaparcosempione.
overloading significa avere più funzioni con lo stesso nome ma signature diversa
esempio
dal momento che il distrutture è anch'esso una funzione, ma viene invocata solamente con la chiamata delete, non vedo come si possa far corrispondere a diversi distruttori.
A differenza di new
il delete di t si farà:
non viene passato alcun parametro, per cui, non ha senso proprio la domanda.
overloading significa avere più funzioni con lo stesso nome ma signature diversa
esempio
Codice: Seleziona tutto
void funct();
void funct(int a);
void funct(boolean b, .... etc etc)
A differenza di new
Codice: Seleziona tutto
T t = new T(args...);
Codice: Seleziona tutto
delete t;
ubuntu 16.04 LTS 64-bit - Memoria: 31,3 Gib - Processore: Intel Core i7-5960X CPU @ 3.00 GHz × 16 - Grafica: AMD Radeon HD 7800 Series - Disco: SSD 256 GB x 4 (RAID 01)
Re: Overloading destructor C++
Ah ok giusto, pensavo rispondessi a me.SuperStep [url=http://forum.ubuntu-it.org/viewtopic.php?p=4883333#p4883333][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:non rispondevo a te ma a @difesaparcosempione.
overloading significa avere più funzioni con lo stesso nome ma signature diversa
esempiodal momento che il distrutture è anch'esso una funzione, ma viene invocata solamente con la chiamata delete, non vedo come si possa far corrispondere a diversi distruttori.Codice: Seleziona tutto
void funct(); void funct(int a); void funct(boolean b, .... etc etc)
A differenza di newil delete di t si farà:Codice: Seleziona tutto
T t = new T(args...);non viene passato alcun parametro, per cui, non ha senso proprio la domanda.Codice: Seleziona tutto
delete t;
(Anche se il distruttore viene chiamato anche implicitamente e non solo quando si usa delete)
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Re: Overloading destructor C++
Quindi se ho capito bene, per ogni singola classe avrò un unico "distruttore", indicato da tildeNomeClasse ? Ok ?
Devo aver fatto un po di confusione con altri c ad oggetti? E' possibile ....
Ciao
Devo aver fatto un po di confusione con altri c ad oggetti? E' possibile ....
Ciao
Re: Overloading destructor C++
Si esatto.difesaparcosempione [url=http://forum.ubuntu-it.org/viewtopic.php?p=4883343#p4883343][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Quindi se ho capito bene, per ogni singola classe avrò un unico "distruttore", indicato da tildeNomeClasse ? Ok ?
Devo aver fatto un po di confusione con altri c ad oggetti? E' possibile ....
Ciao
Mi pare però devi usare nella definizione:
NomeClasse::tildeNomeClasse()
{
......
}
Nella dichiarazione devi mettere quello che dici te.
Ciao
- difesaparcosempione
- Rampante Reduce

- Messaggi: 6031
- Iscrizione: giovedì 27 luglio 2006, 19:06
- Località: Torino
- Contatti:
Re: Overloading destructor C++
Ok . si ti ricordi bene ...
Sapresti dirmi quale linguaggio C ha la possibilità di personalizzare i Distruttori ...
Sapresti dirmi quale linguaggio C ha la possibilità di personalizzare i Distruttori ...
-
Dahman
- Entusiasta Emergente

- Messaggi: 1013
- Iscrizione: mercoledì 31 ottobre 2007, 8:29
- Località: Torino
Re: Overloading destructor C++
Puoi spiegare cosa vuoi realizzare?
Magari una soluzione si trova.
ciao
dahman
Magari una soluzione si trova.
ciao
dahman
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti
