Articles of distruttore

GNU GCC (g ++): Perché genera più sensori?

Ambiente di sviluppo: GNU GCC (g ++) 4.1.2 Mentre sto cercando di indagare su come aumentare la copertura del codice, in particolare la copertura delle funzioni, durante i test delle unità, ho scoperto che alcuni dei membri della class sembrano essere generati più volte. Qualcuno di voi ha qualche idea sul perché, per favore? Ho […]

Distruttori di tipi predefiniti (int, char ecc.)

In C ++ il seguente codice fornisce un errore del compilatore: void destruct1 (int * item) { item->~int(); } Questo codice è quasi lo stesso, ho appena digitato l’int a un altro tipo e qualcosa di magico accade: typedef int myint; void destruct2 (myint * item) { item->~myint(); } Perché il secondo codice funziona? Un […]

A che serve avere il distruttore come privato?

A che serve avere il distruttore come privato?

Come si fa a interrogare un pthread per vedere se è ancora in esecuzione?

Nel mio distruttore voglio distruggere un thread in modo pulito. Il mio objective è aspettare che un thread finisca di essere eseguito e POI distruggere il thread. L’unica cosa che ho trovato su come interrogare lo stato di un pthread è pthread_attr_setdetachstate ma questo ti dice solo se il tuo thread è: PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE Entrambi […]

Quando viene chiamato un distruttore C ++?

Domanda di base: quando un programma chiama un metodo distruttore di class in C ++? Mi è stato detto che è chiamato ogni volta che un object esce dal campo di applicazione o è sobject a una delete Domande più specifiche: 1) Se l’object è creato tramite un puntatore e quel puntatore viene successivamente cancellato […]

Devo chiamare esplicitamente il distruttore virtuale di base?

Quando si esegue l’override di una class in C ++ (con un distruttore virtuale) sto implementando nuovamente il distruttore come virtuale nella class ereditaria, ma devo chiamare il distruttore di base? Se è così, immagino che sia qualcosa del genere … MyChildClass::~MyChildClass() // virtual in header { // Call to base destructor… this->MyBaseClass::~MyBaseClass(); // Some […]

Creare un object: con o senza `new`

Possibile duplicato: Qual è la differenza tra l’istanziazione di un object usando nuovo vs. senza Questa è probabilmente una domanda di base e potrebbe essere già stata chiesta (ad esempio, qui ); eppure ancora non lo capisco. Quindi, lascia che te lo chieda. Considera la seguente class C ++: class Obj{ char* str; public: Obj(char* […]

chiamare distruttore in modo esplicito

Capisco che nella maggior parte dei casi, non dovremmo chiamare un distruttore in modo esplicito. Tuttavia, ho visto un esempio da C ++ 11 Standard N3485 Sezione 13.4.5 Argomenti del modello: Una chiamata al distruttore esplicita per un object che ha un tipo che è una specializzazione del modello di class può esplicitamente specificare gli […]

Qual è la differenza tra l’utilizzo di IDisposable vs un distruttore in C #?

Quando dovrei implementare IDispose su una class anziché su un distruttore? Ho letto questo articolo , ma mi manca ancora il punto. La mia ipotesi è che se implemento IDispose su un object, posso “distruggerlo” esplicitamente anziché aspettare che il garbage collector lo faccia. È corretto? Ciò significa che dovrei sempre chiamare esplicitamente Dispose su […]

Perché abbiamo bisogno di un distruttore virtuale puro in C ++?

Capisco la necessità di un distruttore virtuale. Ma perché abbiamo bisogno di un distruttore virtuale puro? In uno degli articoli del C ++, l’autore ha menzionato che usiamo il distruttore virtuale puro quando vogliamo fare un abstract di class. Ma possiamo fare un’estrazione di class rendendo qualsiasi membro funzioni come puro virtuale. Quindi le mie […]