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