Sobes.tech
Junior — Middle

Оё метавонед мафҳуми идоракунии автоматии захираҳоро дар C++ ва принсипи асосии онро шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Автоматик идора кардани захираҳо дар C++ тавассути идиома RAII (Resource Acquisition Is Initialization) амалӣ мешавад. Маънои он ин аст, ки захира (масалан, хотира, файл, mutex) бо вақти зиндагии объект пайваст аст: захира дар конструктор гирифта мешавад (инициализатсия мешавад) ва дар destruktor озод карда мешавад.

Ин кафолат медиҳад, ки захираҳо дуруст дар вақти баромад аз доира озод мешаванд, ҳатто агар хатогӣ рӯй диҳад.

Масалан:

#include <fstream>

void намуна() {
    std::ifstream файл("data.txt"); // файл дар конструктор кушода мешавад
    if (!файл) {
        // идоракунии хатогӣ
        return;
    }
    // кор бо файл
    // дар вақти баромад аз функсия, destruktor-и ifstream файлро автоматӣ мебандад
}

Ин тариқ, RAII кафолат медиҳад, ки захираҳо бехатар ва қулай идора карда мешаванд, бе ниёз ба даъвати функсияҳои озодкунӣ ба таври ошкоро.