Sobes.tech
Middle

C++-də ağıllı göstərici və adi göstərici arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

C++-də adi adətən sadə göstəricidir və obyektin həyat müddətini idarə etmir. Proqramçı yaddaşın ayrılmasını və azad edilməsini öz üzərinə götürür, bu da yaddaş sızmalarına və ya iki dəfə silinmə səhvlərinə səbəb ola bilər.

Ağıllı göstərici, obyektin həyat müddətini avtomatik idarə edən bir sarmalayıcı sinifdir. Məsələn, std::unique_ptr obyekti ələ keçirir və göstərici sahədən çıxanda onu silir. std::shared_ptr isə istinadların sayını hesablayır və son göstərici məhv olunduqda obyekti silir.

std::unique_ptr ilə nümunə:

#include <memory>

void nümunə() {
    std::unique_ptr<int> ptr = std::make_unique<int>(42);
    // ptr funksiyadan çıxanda obyekt avtomatik silinir
}

Beləliklə, ağıllı göstəricilər yaddaş sızmalarını və resursların idarə olunması səhvlərini qarşısını almağa kömək edir, kodu daha təhlükəsiz və sadə edir.