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.