Допустим, у меня есть класс, который я создаю в самом начале программы, в его конструкторе я выделяю память под какие-то другие объекты с помощью операторов new, а в его деструкторе вызываю delete. Насколько такая практика приемлема и что произойдёт, если во время работы программы её аварийно завершить (скажем, прихлопнуть через диспетчер задач). Спасибо.
Если Ваше приложение будет "прихлопнуто" или аварийно завершено, то обычная выделенная память будет подчищена. Да, деструктор не будет вызван, но какое это имеет значение, если приложение уже упало. Поэтому, если просто выделили память себе под массив, а потом подчистили - все ок.
Но в современном с++ явный вызов new/delete считается моветоном. Обычные unique_ptr
/shared_ptr
решают 90% подобных проблем и нивелируют необходимость в теле деструктора.
Другое дело, если приложение выделят какие-то общие ресурсы - shared memory или междупроцессорные мютексы/семафоры. Тут могут быть проблемы.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Так смог получить только первые 128 битКак при каждом цикле получать следующие 128 бит? Как определить конец файла?
Как в travisyml написать чтобы выполнялся code style только у измененных файлов? Язык C++
Найти значение функции, используя ее расписание в ряд Тейлора ln x