Vous êtes sur la page 1sur 2

Constructores y Destructores

Constructores:
El nombre del constructor es siempre el nombre de la clase. Los
constructores se caracterizan porque se declaran y definen sin valor
de retorno, ni siquiera void. C++ utiliza las capacidades de sobrecarga
de funciones de para que una clase tenga varios 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 ningn
valor.
No pueden ser heredados.
Por ltimo, deben ser pblicos, no tendra ningn 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:
Si no definimos un contructor el compilador crear uno por defecto, sin
parmetros, que no har absolutamente nada. Los datos miembros del
los objetos declarados en el programa contendrn basura.
Si una clase posee constructor, ser llamado siempre que se declare
un objeto de esa clase. Si ese constructor requiere argumentos, como
en este caso, es obligatorio suministrarlos.
Los constructores son funciones, tambin pueden definirse varios constructores
para cada clase, es decir, el constructor puede sobrecargarse. La nica limitacin
(como en todos los casos de sobrecarga) es que no pueden declararse varios
constructores con el mismo nmero y el mismo tipo de argumentos.

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
dinmica utilizada por dicho objeto o liberando recursos usados, como ficheros,
dispositivos, etc.
Al igual que los constructores, los destructores tambin tienen algunas
caractersticas especiales:

Tambin tienen el mismo nombre que la clase a la que pertenecen,


pero tienen el smbolo delante.

No tienen tipo de retorno, y por lo tanto no retornan ningn valor.

No tienen parmetros.

No pueden ser heredados.

Deben ser pblicos, no tendra ningn 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 lgico, puesto que no


tienen valor de retorno ni parmetros, no hay posibilidad de
sobrecarga.

Cuando se define un destructor para una clase, ste es llamado


automticamente cuando se abandona el mbito en el que fue definido. Esto
es as salvo cuando el objeto fue creado dinmicamente con el operador new,
ya que en ese caso, cuando es necesario eliminarlo, hay que hacerlo
explcitamente usando el operador delete.
En general, ser necesario definir un destructor cuando nuestra clase tenga
datos miembro de tipo puntero, aunque esto no es una regla estricta.
Los destructores son los mtodos complementarios a los constructores. Tienen
la misma sintaxis que en C++ y se escriben anteponiendo el carcter "~" al
nombre de la clase a la que pertenecen ("~" se consigue manteniendo pulsada
la tecla ALT y mientras se pulsan en el teclado numrico de la derecha los
nmeros 1, 2 y 6 en este orden).
En resumen es un mtodo de clase que sirve para realizar ciertas operaciones
necesarias al dejar de existir un objeto, por ejemplo, cerrar conexiones de una
comunicacin, cerrar ficheros, etc.

Vous aimerez peut-être aussi