[C con Clase] vector<MiClase*> y clear()
Steven Davidson
srd4121 en njit.edu
Lun Jun 7 19:33:00 CEST 2010
Hola David,
Ya te han contestado, pero quiero agregar a lo dicho.
Puedes usar la clase-plantilla 'auto_ptr' precisamente para resolver
este tipo de problemas. Básicamente, se generará una clase para
representar un puntero y sus operaciones. Reescribiríamos tu ejemplo así:
class MiClase {...};
class MiClase2
{
public:
vector< auto_ptr<const MiClase> > v;
~MiClase2()
{
this->v.clear();
}
};
int main()
{
MiClase2 m2;
for( int i = 0; i < 1000; i++ )
{
m2.v.push_back( auto_ptr<const MiClase>( new MiClase ) );
}
v.clear();
return 0; // Te falta esta sentencia
}
La clase-plantilla 'auto_ptr' liberará en su destructor la memoria
apuntada por el puntero que le diste previamente.
Espero que esto te sirva.
Steven
Más información sobre la lista de distribución Cconclase