Articles of destructor

Destruye manualmente objetos C #

Soy bastante nuevo en el aprendizaje de C # (del fondo de Java y C ++) y tengo una pregunta sobre la eliminación manual de basura: ¿es posible destruir manualmente un objeto en C #? Sé sobre la interfaz IDisposable , pero supongamos que estoy tratando con una clase que no escribí y no la […]

Ruby: ¿Destructores?

Necesito ocasionalmente crear imágenes con rmagick en un directorio de caché. Para luego deshacerme de ellos rápidamente, sin perderlos para la vista, quiero eliminar los archivos de imagen mientras mi instancia de Ruby de la clase de imagen se destruye o entra en la recolección de basura. ¿Qué método de clase debo sobrescribir para alimentar […]

¿Por qué no se llama a destructor a la excepción?

Esperaba que A::~A() se llamara en este progtwig, pero no es así: #include struct A { ~A() { std::cout << "~A()" << std::endl; } }; void f() { A a; throw "spam"; } int main() { f(); } Sin embargo, si cambio la última línea a int main() try { f(); } catch (…) { […]

¿Se llama a destructor si se emiten SIGINT o SIGSTP?

Tengo una clase con un destructor definido por el usuario. Si la clase fue instanciada inicialmente, y luego se emite SIGINT (usando CTRL + C en Unix) mientras el progtwig se está ejecutando, ¿se llamará al destructor? ¿Cuál es el comportamiento de SIGSTP (CTRL + Z en Unix)?

En C #, ¿cuál es la diferencia entre un destructor y un método Finalize en una clase?

¿Cuál es la diferencia, si hay una, entre un destructor y un método Finalize en una clase? Recientemente descubrí que Visual Studio 2008 considera un destructor sinónimo de un método Finalize, lo que significa que Visual Studio no le permitirá definir simultáneamente ambos métodos en una clase. Por ejemplo, el siguiente fragmento de código: class […]

La llamada al pseudo destructor no destruye un objeto

Considera el siguiente código: #include typedef int t; ta=42; int main() { at::~t(); std::cout << a; //42 } Se espera que a será destruido. Pero no es verdad, ¿por qué? ¿Cómo se destruirá el objeto esa llamada pseudo-destructor?

Reenviar statement con unique_ptr?

He encontrado que es útil usar la statement de clases forward en combinación con std::unique_ptr como en el código a continuación. Comstack y trabaja con GCC, pero todo parece un tanto extraño, y me pregunto si esto es un comportamiento estándar (es decir, requerido por el estándar). Como B no es un tipo completo cuando […]

¿Por qué los contenedores STL no tienen destructores virtuales?

¿Alguien sabe por qué los contenedores STL no tienen destructores virtuales? Por lo que puedo decir, los únicos beneficios son: reduce el tamaño de una instancia en un puntero (a la tabla de métodos virtuales) y hace que la destrucción y la construcción sean un poco más rápidas. El inconveniente es que no es seguro […]

Cómo destruir un objeto?

Hasta donde yo sé (que es muy poco), hay dos formas, dado: $var = new object() Entonces: // Method 1: Set to null $var = null; // Method 2: Unset unset($var); Otro mejor método? ¿Estoy dividiendo pelos aquí?

Destructores de tipos incorporados (int, char, etc.)

En C ++, el siguiente código da un error de comstackción: void destruct1 (int * item) { item->~int(); } Este código es casi el mismo, simplemente escribo el int a otro tipo y sucede algo mágico: typedef int myint; void destruct2 (myint * item) { item->~myint(); } ¿Por qué funciona el segundo código? ¿Un int […]