Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: slif33r en 28 de Febrero 2013, 21:03

Título: Constructores y destructores en C++ (cplusplus)
Publicado por: slif33r en 28 de Febrero 2013, 21:03
Hola no se si me podrian explicar en si(función) que es lo que hacen y para que sirven los constructores y destructores y si necesariamente tienen que ir juntos al momente de crear alguna clase.

El lenguaje que estoy usando es el C++.

Gracias por las repuestas que pueda recibir.
Título: Re:Constructores y destructores
Publicado por: Ogramar en 28 de Febrero 2013, 21:56
Aquí tienes una explicación sobre qué son los constructores. La explicación es para java, pero puedes aplicarla igualmente a C++ ya que java y C++ puede decirse que son primo-hermanos:

https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=426:ique-es-una-clase-java-concepto-atributos-propiedades-o-campos-constructor-y-metodos-cu00623b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
Título: Re:Constructores y destructores
Publicado por: slif33r en 28 de Febrero 2013, 23:23
NO dice nada de los destructores, para que usarlas y necesariamente tiene que tener el mismo nombre de la clase
Título: Re:Constructores y destructores
Publicado por: Ogramar en 01 de Marzo 2013, 10:29
Los destructores son algo menos importante. No siempre se incluyen en las clases. Su función es liberar la memoria usado por un objeto cuando este deja de ser útil y en general se usan trabajando con punteros, no con variables normales.

Ejemplo:

#include <iostream>
#include <cstring>
using namespace std;
 
class miClase {
  public:
   miClase();        // Constructor por defecto
   ~miClase();       // Destructor
//Aquí más código

};
 
miClase::miClase() : mic(NULL) {}

// Aquí más código

miClase::~miClase() {
   delete[] mic;        // Deja libre la memoria reservada
}

int main() {
// ... aquí más código
// Declaramos un puntero
mic *NombreDePuntero;

delete NombreDePuntero; // Libera el espacio de memoria al que apunta el puntero
}

Ver http://es.wikipedia.org/wiki/Destructor_%28inform%C3%A1tica%29