elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [SOLUCIONADO] Duda con destructores en C++ (que borrar y que no)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Duda con destructores en C++ (que borrar y que no)  (Leído 2,057 veces)
SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
[SOLUCIONADO] Duda con destructores en C++ (que borrar y que no)
« en: 16 Agosto 2014, 13:58 pm »

Hola a todos.

Tengo una duda con destructores en C++, y es que en todos los tutoriales que he leído, en el destructor se borran solo aquellas variables miembro que son punteros, y no entiendo del todo por que no se borran todas las demás variables. ¿Es porque las variables no punteros no se reservan  mediante 'new' y por ello se borran automáticamente?

Ej.
Código:
class A{

private:
  int n;
  char *c;

public:
  A(){
       this->n=0;
       this->c=new char[20];
  }

  ~A(){
       delete[] this->c;
       this->c=NULL;
      //¿delete this->n? <== ¿Hay que hacer esto?
   }
}

Gracias, saludos.

PD. El operador 'delete' es para variables que se reservaron con el operador 'new', y 'delete[]' para las que se reservan mediante 'new[]', ¿esto es cierto SIEMPRE?

 


« Última modificación: 16 Agosto 2014, 16:58 pm por SARGE553413 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Duda con destructores en C++
« Respuesta #1 en: 16 Agosto 2014, 14:13 pm »

Es exactamente lo que dijiste xD
Las que no son punteros, se destruyen automáticamente. Los punteros, al ser memoria dinámica, es algo que tiene que tener en cuenta el programador.

delete es para arreglos de 1 elemento.
delete[], para arrehlos de más de 1 elemento.

Si no me equivoco, puedes usar "delete" cuando reservaste memoria mediante "new ...[1]".


En línea

SARGE553413

Desconectado Desconectado

Mensajes: 176


Ver Perfil
Re: Duda con destructores en C++
« Respuesta #2 en: 16 Agosto 2014, 16:57 pm »

Ok, gracias por la respuesta.

Saludos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Borrar archivos con X extension(solucionado)
Programación Visual Basic
xhc 6 2,338 Último mensaje 13 Diciembre 2007, 14:58 pm
por xhc
lio con constructores y destructores
Programación C/C++
Javincy 2 2,413 Último mensaje 8 Febrero 2012, 16:18 pm
por Javincy
[Resuelto] Duda con destructores - vector de una clase
Programación C/C++
X3R4CK3R 8 3,351 Último mensaje 15 Julio 2013, 17:25 pm
por X3R4CK3R
Clases, Constructores y Destructores en C++
Programación C/C++
ThronerAXE 4 5,733 Último mensaje 11 Diciembre 2013, 02:34 am
por vangodp
Destructores en clases administradas C++/CLI
.NET (C#, VB.NET, ASP)
SARGE553413 0 1,543 Último mensaje 25 Julio 2014, 15:34 pm
por SARGE553413
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines