J ai un probleme d access violation sur un delete this

voila mon probleme en simplifié


class A {

protected:
A(); // construction depuis un manager externe , pas d appel de constructeur direct possible
public:
virtual void CleanUp();
int b1;
}

void A::CleanUp() {

delete this;
}




class B: public A {

protected:
B();
public:
void CleanUp();
int b1;
int b2;
}


void B::CleanUp() {
// divers netoyyage
delete this;
}

Comme le code plante au delete this , je me suis demandé si le this n etait pas un peu foireux , vu qu il heritage et que les objets herités ne sont pas forcement de meme taille que l objet parent

Sinon le delete this est bien le dernier appel de l objet donc c est censé est bon.