Стек против кучи C ++

У меня только что был быстрый вопрос о том, как работают переменные стека и переменные кучи. Насколько я понимаю, переменные стека - это переменные, которые после возврата функций будут удалены, а переменные кучи являются постоянными. Но что меня действительно смущает, так это то, как размещать переменные кучи внутри функций:

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

Скажем, у меня есть конструктор для MyObject , то есть newObject (const char * a) . Затем в этой функции, когда она вызывается, после возврата удаляется ли вновь созданный newObject ? Если да, то как тогда можно выделить память в куче внутри функции? Если нет, как вы очистите свою память позже?

Кроме того, какова именно роль деструктора и когда он вызывается?

20
задан Eitan T 30 June 2012 в 23:27
поделиться