top of page

Constructores y 

desrtuctores.

OBJETIVO:

Realizar una consulta de destructores y constructores en c++, utilizando fuentes informativas como el internet, para poder ampliar y mejorar nuestros conocimientos en c++.

 

CONSTRUCTORES:

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara.

Los constructores son especiales por varios motivos:

  • Tienen el mismo nombre que la clase a la que pertenecen.

  • No tienen tipo de retorno, y por lo tanto no retornan ningún valor.

  • No pueden ser heredados.

  • Por último, deben ser públicos, no tendría ningún sentido declarar un constructor como privado, ya que siempre se usan desde el exterior de la clase, ni tampoco como protegido, ya que no puede ser heredado.

 

SINTAXIS:

 

  • <identificador de clase> {

  •     :

<identificador de clase>(<lista de parámetros>) [: <lista de constructores>] {

<código del constructor>

  •  

  •  

 

DESTRUCTORES:

 

Los destructores son funciones miembro especiales que sirven para eliminar un objeto de una determinada clase. El destructor realizará procesos necesarios cuando un objeto termine su ámbito temporal, por ejemplo, liberando la memoria dinámica utilizada por dicho objeto o liberando recursos usados, como ficheros, dispositivos, etc.

Al igual que los constructores, los destructores también tienen algunas características especiales:

  • También tienen el mismo nombre que la clase a la que pertenecen, pero tienen el símbolo ˜ delante.

  • No tienen tipo de retorno, y por lo tanto no retornan ningún valor.

  • No tienen parámetros.

  • No pueden ser heredados.

  • Deben ser públicos, no tendría ningún sentido declarar un destructor como privado, ya que siempre se usan desde el exterior de la clase, ni tampoco como protegido, ya que no puede ser heredado.

  • No pueden ser sobrecargados, lo cual es lógico, puesto que no tienen valor de retorno ni parámetros, no hay posibilidad de sobrecarga.

Cuando se define un destructor para una clase, éste es llamado automáticamente cuando se abandona el ámbito en el que fue definido. Esto es así salvo cuando el objeto fue creado dinámicamente con el operador new ya que, en ese caso, cuando es necesario eliminarlo, hay que hacerlo explícitamente usando el operador delate.

En general, será necesario definir un destructor cuando nuestra clase tenga datos miembros de tipo puntero, aunque esto no es una regla estricta.

 

 

#include <iostream>

#include <cstring>

using namespace std;

 

class cadena {

  public:

   cadena();        // Constructor por defecto

   cadena(const char *c); // Constructor desde cadena c

   cadena(int n);   // Constructor de cadena de n caracteres

   cadena(const cadena &);   // Constructor copia

   ~cadena();       // Destructor

 

 

 

 

 

 

 

 

bottom of page