Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/07/2007, 12:55
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Re: Des/Constructores virtuales en C++?

Otra vez soy yo.
Como veran, el tutorial de C con clase sigue siendo el mejor.
y pues por los que alguna vez se topen con estas dudas, aqui esta la explicacion.

En el codigo que puse anteriormente:

Cita:
int main(int argc, char *argv[])
{
miClase *a=new subClase;
delete a;
}
Solo se llama al destructor de miClase, pero como bien sabemos, al volver una funcion de la miClase virtual, se llama la de la clase derivada en vez de la de la clase base.

Cita:
class miClase {
public:
miClase();
virutal ~miClase();
.
.
}

class subClase:public miClase {
public:
subClase();
~subClase();
.
.
}

int main(int argc, char *argv[])
{
miClase *a=new subClase;
delete a;
}
Aqui sucede lo siguiente:
1- Se llama el constructor de miClase
2- Se llama el constructor de subClase
3- Se llama el destructor de subClase
4- Se llama el destructor de miClase

Igual que en el primer ejemplo del segundo post.

Espero a alguien le sirva algun dia.

Saludos