Título: [C++] Programa queda congelado al usar destructor Publicado por: huchoko en 17 Noviembre 2018, 18:34 pm Pues, siendo nuevo en C++ y ahora estoy con las clases, he estado experimentando con los destructores, pero por una razón que no sé, mi programa se queda congelado.
Acá mi código: Código Saludos :) Título: Re: [C++] Programa queda congelado al usar destructor Publicado por: CalgaryCorpus en 17 Noviembre 2018, 19:00 pm Elimina la invocacion del destructor explicita. Deja que el objeto se destruya solo al morir el programa.
Título: Re: [C++] Programa queda congelado al usar destructor Publicado por: K-YreX en 17 Noviembre 2018, 23:26 pm Elimina la invocacion del destructor explicita. Deja que el objeto se destruya solo al morir el programa. Exacto como bien te han explicado ahí no debes escribir:Código Ya que el destructor de una clase se invoca automáticamente al terminar el programa. Además en los casos en que no usas memoria dinámica no es necesario definir el destructor ya que la clase proporciona uno por defecto (como ocurre con el constructor). En cambio si utilizas memoria dinámica, en el destructor tendrías que liberar esa memoria ya que sino el programa correrá aparentemente sin problemas pero estarás dejando memoria sin liberar. ¿Entonces si quieres aplicar el destructor explícitamente durante el programa? Muy sencillo, creas un método auxiliar con las instrucciones del destructor y en el destructor sólo llamas a ese método auxiliar. Así si quieres usarlo en otro punto del programa sólo deberás invocar al método auxiliar. Pero recuerda, si invocas el método auxiliar por ejemplo para liberar memoria dinámica, tendrás que volver a reservar memoria antes de llegar al final y de que se llame al destructor; sino estarás liberando dos veces la memoria y la segunda vez te producirá un error. Código
Aunque estás empezando ya llegarás a trabajar con memoria dinámica por lo que ten presente esto. Ánimo. |