Dadas dos clases solo tienen tipo de datos primitivos y ningún destructor/desasignador personalizado. ¿La especificación C++ garantiza que desasignará con el tamaño correcto?¿Usar borrar con un puntero de clase base provocará una pérdida de memoria?
struct A { int foo; };
struct B: public A { int bar[100000]; };
A *a = (A*)new B;
delete a;
quiero saber qué tengo que escribir un vacío virtual
dtor?
He intentado g ++ y vC++ 2008 y no provocarán una fuga. Pero me gustaría saber qué es correcto en C++ estándar.
Tuve un error muy grave en mi vida cuando mezclé la herencia sin métodos virtuales con el grupo de memoria. Simplemente no hagas eso, no es seguro. – vava