Stack vs Heap C ++

Tuve una pregunta rápida sobre cómo funcionan las variables de pila frente a las variables de montón. Según tengo entendido, las variables de pila son variables que después del retorno de las funciones se eliminarán, y las variables de montón son persistentes. Pero lo que realmente me confunde es cómo asignar variables de montón dentro de las funciones:

int MyObject::addObject(const char* a){
    MyObject newObject(a);
    return 0;
}

Di que tengo un constructor paraMyObject es decirnewObject(const char * a). Luego, en esta función, cuando se llama, después del retorno, se ejecuta el @ recién construinewObject ser eliminado? En caso afirmativo, ¿cómo se puede asignar al montón dentro de una función? Si no, ¿cómo limpiará su memoria más tarde?

Además, ¿cuál es exactamente el papel de un destructor y cuándo se llama?

Respuestas a la pregunta(16)

Su respuesta a la pregunta