El único caso en el que se debe invocar explícitamente al destructor de un objeto, es cuando este fue creado mediante el operador new, es decir, que este vive en memoria heap, y no en la pila de ejecución del programa.