Так что стек стека не может быть освобожден вручную с помощью delete, потому что это как-то вызывает UB. Но при создании объекта производного класса задействовано «новое» ключевое слово. Скажем, например:Удалить производный класс с указателем стека?
void some_function(){
Base* base;
base = new Derived;
}
как «новый» участвует, является базой = новый Derived теперь находится в куче? И если да, то должна ли память, где она находится, снова освободиться вручную? Или он находится в стеке, и память будет освобождена после завершения программы?
1) Выделенная память в куче. 2) Он должен быть удален вручную. Лучше использовать интеллектуальные указатели, такие как 'std :: unique_ptr' или' std :: shared_ptr'. 3) Когда программа завершается, память освобождается. Но вы продолжаете выделять память, а не удалять, это будет утечка памяти. – Jagannath