¿Se llama un destructor cuando un objeto sale de alcance?
Por ejemplo:
int main() {
Foo *leedle = new Foo();
return 0;
}
class Foo {
private:
somePointer* bar;
public:
Foo();
~Foo();
};
Foo::~Foo() {
delete bar;
}
¿El destructor será llamado implícitamente por el compilador o habrá una pérdida de memoria?
Soy nuevo en la memoria dinámica, así que si este no es un caso de prueba utilizable, lo siento.