Quiero almacenar el objeto 10 Obj
en objList
, pero no sé cuándo es el uso apropiado delete
en este caso. Si utilizo delete Obj;
en la línea donde lo anoto en el código a continuación, ¿se almacenará el Obj
en objList
?Cuándo usar "eliminar"?
struct Obj {
int u;
int v;
};
vector<Obj> objList;
int main() {
for(int i = 0; i < 10; i++) {
Obj *obj = new Obj();
obj->u = i;
obj->v = i + 1;
objList.push_back(*obj);
// Should i use "delete Obj;" here?
}
}
'new' no se requiere en absoluto aquí ... crea el objeto en la pila usando' Obj obj; '. – Naveen
E incluso si necesita 'new', entonces un simple 'delete' no sería suficiente - si' push_back' lanza, entonces tiene una fuga. Siempre debe usar los objetos [smart pointers] (http://stackoverflow.com/questions/106508) u otros [RAII] (http://stackoverflow.com/questions/76796) para administrar recursos dinámicos. –