Constructores [editar]Son unos métodos especiales que se ejecutan automáticamente al crear un objeto de la clase. En su declaración no se especifica el tipo de dato que devuelven, y poseen el mismo nombre que la clase a la que pertenecen. Al igual que otros métodos, puede haber varios constructores sobrecargados, aunque no pueden existir constructores virtuales.
Como característica especial a la hora de implementar un constructor, justo después de la declaración de los parámetros, se encuentra lo que se llama “lista
Cabe destacar que no es necesario declarar un constructor al igual que un destructor, pues el compilador lo puede hacer, aunque no es la mejor forma de programar.
Tomando el ejemplo de la Clase Punto, si deseamos que cada vez que se cree un objeto de esta clase las coordenadas del punto sean igual a cero podemos agregar un constructor como se muestra a continuación:
// Clase Punto //----------------------------------------------------------------------- class Punto { public:
// Coordenadas del punto
float x;
float y;
// Constructor
Punto() : x ( 0 ), y ( 0 ) // Inicializamos las variables “x” e “y”
{}
}; //-----------------------------------------------------------------------
// Main para demostrar el funcionamiento de la clase
- include <iostream> // Esto nos permite utilizar la función COUT
using namespace std;
int main() {
Punto Mi Punto; // creamos un elemento de la clase Punto llamado Mi Punto cout<<”Coordenada X:”<<Mi Punto.x<<endl; // mostramos el valor acumulado en la variable x cout<<”Coordenada Y:”<<Mi Punto.y<<endl; // mostramos el valor acumulado en la variable y return 0;
} Si compilamos y ejecutamos el Que hijo de la fregada eres si lo imprimes tal cual te lo estoy poniendo por que la estas cagando anterior programa, obtenemos una salida que debe ser similar a la siguiente:
Coordenada X:0 Coordenada Y:0
Destructores [editar]Los destructores son funciones miembro especiales llamadas automáticamente en la ejecución del programa, y por tanto no tienen por qué ser llamadas explícitamente por el programador. Su cometido es liberar los recursos computacionales que el objeto de dicha clase haya adquirido en tiempo de ejecución al expirar este.
Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin del ámbito en el que está declarado el objeto.
Existen dos tipos de destructores pueden ser públicos o privados, según si se declaran:
si es publico se llama desde cualquier parte del programa para destruir el objeto. si es privado no se permite la destrucción del objeto por el usuario.