Sobes.tech
Middle

C++ da aqlli ko'rsatkich va oddiy ko'rsatkich o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

C++ da oddiy ko'rsatkich bu faqat xotira manzili bo'lib, ob'ektning hayot davrini boshqarmaydi. Dasturchi xotirani ajratish va bo'shatish uchun javobgardir, bu esa xotira oqib ketishiga yoki ikki marta o'chirish xatolariga olib kelishi mumkin.

Aqlli ko'rsatkich - bu ob'ektning hayot davrini avtomatik ravishda boshqaradigan qadoqlovchi sinf. Masalan, std::unique_ptr ob'ektni egallaydi va ko'rsatkich doirasidan chiqganda uni o'chiradi. std::shared_ptr esa havolalar sonini hisoblaydi va oxirgi ko'rsatkich yo'q qilinayotganda ob'ektni o'chiradi.

std::unique_ptr bilan misol:

#include <memory>

void misol() {
    std::unique_ptr<int> ptr = std::make_unique<int>(42);
    // ptr funksiyadan chiqishda ob'ektni avtomatik ravishda o'chiradi
}

Shu tarzda, aqlli ko'rsatkichlar xotira oqib ketishlari va resurslarni boshqarish xatolarini oldini olishga yordam beradi, kodni xavfsizroq va oddiyroq qiladi.