[C con Clase] Ayuda en C++ con constructores y destructores!!!
Steven Davidson
srd4121 en njit.edu
Jue Mar 31 07:59:53 CEST 2011
Hola Jovanny,
On 3/31/2011 1:18 AM, Jovanny wrote:
> Hola, espero alguien me pueda ayudar...
>
> En este semestre de la carrera de ingeniería en computación, en la
> materia de Programación orientada a Objetos, no le entiendo muy bien
> a los constructores y destructores, menos a asignación dinámica de
> memoria, herencia... etc.
>
> Por ahora me interesa aprender y dominar los constructores y
> destructores.
>
> Además, mi maestro no enseña muy bien que digamos!!!
>
> Espero me puedan ayudar, ya que he leído muchos tutoriales y libros
> pero aún no lo comprendo completamente.
>
Primeramente, sugiero que consultes los capítulos 11 (
http://c.conclase.net/curso/index.php?cap=011#STR_funciones ), para una
pequeña introducción a los constructores, y 29 (
http://c.conclase.net/curso/index.php?cap=029#inicio ). Para los
destructores, consulta el capítulo 30 (
http://c.conclase.net/curso/index.php?cap=030#inicio ).
Brevemente, te comento que un constructor no es más que una función
miembro de una estructura o clase, que se invoca automática e
implícitamente al instanciar (crear) un objeto de tal estructura o
clase. El nombre del constructor es idéntico al de la estructura o clase
y no se indica explícitamente el tipo de retorno. Por ejemplo,
struct Algo
{
int numero;
Algo()
{
numero = -1;
}
};
Ahora instanciamos un objeto:
Algo obj;
Automáticamente, se invoca el constructor 'Algo()', antes de terminar de
definir 'obj'. Como puedes ver, una de las razones de usar un
constructor es para inicializar los datos miembro de tal estructura o
clase, ya que se hace automática e implícitamente. Ahora podemos usar el
objeto - y su contenido - inmediatamente. Por ejemplo,
cout << obj.numero << endl;
El destructor es parecido al constructor, pero es invocado justo antes
de destruir tal objeto. Nos sirve para ejecutar sentencias necesarias
típicamente para "limpieza". El uso más popular es para liberar memoria
dinámica que hemos adjudicado previamente, pero también nos puede servir
para cerrar ficheros o incluso escribir datos a un fichero, justo antes
de finalizar este objeto.
Si tienes alguna duda puntual acerca de estos dos temas, coméntanosla
con detalles.
Espero haber aclarado algo del tema.
Steven
Más información sobre la lista de distribución Cconclase