У меня просто был быстрый вопрос о том, как работают переменные стека и переменные кучи. Насколько я понимаю, переменными стека являются переменные, которые после возвращения функций будут удалены, а переменные кучи будут постоянными. Но я действительно смущен, так это то, как распределять переменные кучи внутри функций:
int MyObject::addObject(const char* a){
MyObject newObject(a);
return 0;
}
Скажем, что у меня есть конструктор для MyObject, который newObject(const char * a). Затем в этой функции, когда она вызывается, после возврата создается ли вновь созданный newObject? Если да, как вы можете выделить кучу внутри функции? Если нет, как вы очистите свою память позже?
Кроме того, какова роль деструктора и когда он называется?