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