Stack vs Heap C ++

Acabei de fazer uma pergunta rápida sobre como as variáveis de pilha versus variáveis de pilha funcionam. Pelo que entendi, as variáveis de pilha são variáveis que após o retorno das funções serão excluídas e as variáveis de heap são persistentes. Mas estou realmente confuso sobre como alocar variáveis de heap dentro de funções:

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

Diga que eu tenho um construtor paraMyObject isso énewObject(const char * a). Então, nesta função, quando é chamada, após o retorno o @ recém-construínewObject foi excluído? Se sim, como você pode alocar para o heap dentro de uma função? Caso contrário, como você limpa sua memória posteriormente?

lém disso, qual é exatamente o papel de um destruidor e quando é chamad

questionAnswers(8)

yourAnswerToTheQuestion