class Parent{
int i;
};
class Child : Parent{
char ch;
};
Parent *ptr = new Child();
delete ptr;

こういうことをした時にメモリを確保するときはChildの変数chの分まで多くメモリを確保してると思うのですが
解放するときにちゃんとchの部分も解放されますか?
delete (Child*)ptr;
みたいにしないとダメですか?