Не могли бы вы разработчики С++ дать нам хорошее описание того, что такое RAII, почему это важно и может ли оно иметь какое-либо отношение к другим языкам?
Я знаю немного. Я считаю, что это означает "Инициализация ресурсов". Однако это имя не преувеличивает мое (возможно неправильное) понимание того, что представляет собой RAII: создается впечатление, что RAII - это способ инициализации объектов в стеке, так что, когда эти переменные выходят из сферы действия, деструкторы будут автоматически называть причину очистки ресурсов.
Так почему же это не называется "использование стека для запуска очистки" (UTSTTC:)? Как вы добираетесь оттуда до "RAII"?
И как вы можете что-то сделать в стеке, что приведет к очистке чего-то, что живет в куче? Кроме того, существуют случаи, когда вы не можете использовать RAII? Вы когда-нибудь мечтали о сборке мусора? По крайней мере, сборщик мусора, который вы можете использовать для некоторых объектов, позволяя другим управлять?
Спасибо.