Sobes.tech
Middle

Koja je razlika između pametnog pokazivača i običnog u C++?

sobes.tech АИ

Одговор од АИ

Običan pokazivač u C++-u je jednostavno adresa u memoriji koja ne upravlja vremenom života objekta. Programer je odgovoran za alokaciju i oslobađanje memorije, što može dovesti do curenja memorije ili grešaka pri duplom brisanju.

Pametni pokazivač je klasa omotač koja automatski upravlja vremenom života objekta. Na primer, std::unique_ptr poseduje objekat i briše ga kada pokazivač izađe iz opsega. std::shared_ptr broji reference i briše objekat kada poslednji pokazivač bude uništen.

Primer sa std::unique_ptr:

#include <memory>

void primer() {
    std::unique_ptr<int> ptr = std::make_unique<int>(42);
    // ptr automatski briše objekat pri izlasku iz funkcije
}

Na ovaj način, pametni pokazivači pomažu da se izbegnu curenja memorije i greške u upravljanju resursima, čineći kod sigurnijim i jednostavnijim.