Constructor y destructor
Alguien me puede ayudar y decirme que es un constructor y que es un destructor por favor??
El internet esta llena de articulos sobre este tema.
Fijate, por ejemplo, en:
http://www.programatuweb.com/manuales/net/constructores.php
Fijate, por ejemplo, en:
http://www.programatuweb.com/manuales/net/constructores.php
Bueno, más o menos, como para ir entrando en calor...
Un constructor es una función miembro de una clase, que lleva su mismo nombre, y que está dedicada a *inicializar* un objeto de esa clase.
Por ejemplo:
class fulano {
string nombre;
double billetera;
public:
fulano(string n, double b)
{ nombre = n; billetera = ch; {
//... ... ...
};
ese constructor inicializa un objeto de tipo fulano con los valores de nombre y villetera que se le pasen al constructor.
Ahora, se puede declarar e inicializar un fulano así:
fulano Yo ("Alejandro", 5);
// Yo me llamo Alejandro y tengo 5 pesos en la billetera.
Es muy frecuente definir más de un constructor para una clase, y el compilador sabe a cuál se está llamando porque difieren en sus parámetros.
El destructor es un complemento del constructor, y se usa cuando es necesario tomar alguna acción cuando algún objeto de la clase sale de su ámbito (deja de existir). En general, es útil para *eliminar* algún miembro creado con new, por ejemplo.
class nuevo {
char *c;
int largo;
public:
nuevo ( i ); // constructor
~nuevo(); // destructor
//... ... ... ... ...
}
nuevo::nuevo(int i) {
largo = i;
c = new char(i); // asigna memoria a i caracteres.
}
nuevo::~nuevo() {
delete[] c; // libera la memoria asignada a c.
}
Para ir probando puedes ensayar sobre este código mínimo:
//-----------------------------------------
#include <iostream>
using namespace std;
class hola {
public:
hola() {
cout<< "Hola"<< endl;
}
~hola() {
cout<< "Chau";
getchar();
}
} Saludos;
int main()
{
}
//--------------------------
Alejandro
Un constructor es una función miembro de una clase, que lleva su mismo nombre, y que está dedicada a *inicializar* un objeto de esa clase.
Por ejemplo:
class fulano {
string nombre;
double billetera;
public:
fulano(string n, double b)
{ nombre = n; billetera = ch; {
//... ... ...
};
ese constructor inicializa un objeto de tipo fulano con los valores de nombre y villetera que se le pasen al constructor.
Ahora, se puede declarar e inicializar un fulano así:
fulano Yo ("Alejandro", 5);
// Yo me llamo Alejandro y tengo 5 pesos en la billetera.
Es muy frecuente definir más de un constructor para una clase, y el compilador sabe a cuál se está llamando porque difieren en sus parámetros.
El destructor es un complemento del constructor, y se usa cuando es necesario tomar alguna acción cuando algún objeto de la clase sale de su ámbito (deja de existir). En general, es útil para *eliminar* algún miembro creado con new, por ejemplo.
class nuevo {
char *c;
int largo;
public:
nuevo ( i ); // constructor
~nuevo(); // destructor
//... ... ... ... ...
}
nuevo::nuevo(int i) {
largo = i;
c = new char(i); // asigna memoria a i caracteres.
}
nuevo::~nuevo() {
delete[] c; // libera la memoria asignada a c.
}
Para ir probando puedes ensayar sobre este código mínimo:
//-----------------------------------------
#include <iostream>
using namespace std;
class hola {
public:
hola() {
cout<< "Hola"<< endl;
}
~hola() {
cout<< "Chau";
getchar();
}
} Saludos;
int main()
{
}
//--------------------------
Alejandro
