Titulo.jpg (10742 bytes)
FlechaI.jpg (2886 bytes) casa.jpg (31539 bytes) FlechaD.jpg (2791 bytes)

Constructores

Destructores


Los contructores.  Un constructor no es m�s que una funci�n publica que tiene por objetivo inicializar los datos de la clase en el momento de la creaci�n del objeto, dandole as� individualidad.

A diferencia de las dem�s funciones no viene precedida del tipo de dato que devuelve y su nombre es el mismo de la clase.

En la clase Cronometro si al crear el objeto se llama a la funci�n muestra() antes que a la funci�n arranca() se hubiera puesto en pantalla un valor absurdo.  En clases mas complejas pod�an haber ocurrido errores mas sensibles como divisiones por cero o acciones sobre punteros no inicializados.

Evitar estos errores es la funci�n fundamental de los constructores.

Haciendo uso de la propiedad de las funciones de ser sobre dimensionables las clases tienen en general varios constructores para facilitar la creaci�n de los objetos.

En una clase que permite crear un punto en la pantalla podriamos tener como constructores los siguientes:

class Punto

{ private: float x;

               float y;

  public: Punto()

             {x = 0;

               y = 0;

              }

             Punto(float xp, float yp)

             {x = xp;

              y = yp;

             }

};

Como vemos un primer constructor que no tiene parametros situar� nuestro punto en las coordenadas (0,0) mientras que el otro con par�metros lo situar� en la posici�n dada en el momento de hacer el programa.

De esa forma un programa que utilice la clase puede ser:

void main()

{Punto Punto1, Punto2(3,10);

}

De esta forma tendriamos que Punto1 est� situado en (0,0) mientras que Punto2 esta en las coordenadas (3,10).

De la misma forma que al crear un objeto se hace una llamado al constructor para inicializar las variables cuando se termina de utilizar el objeto es necesario liberar la memoria reservada para �l.  Esta es la funci�n de los destructores.

Su sintaxis es muy simple:

class Punto

{  //

   ~Punto();

   //

};

el nombre de la clase precedido del signo ~.

De esta manera cuando creamos un objeto en una funci�n autom�ticamente el compilador libera la memoria que se utilizaba para almacenar sus datos, realizando la misma acci�n al terminar el programa con los objetos que en el se hayan creado.

arriba.jpg (2978 bytes) casa.jpg (31539 bytes)
Hosted by www.Geocities.ws

1