Middle
Vai shared_ptr ir tikai viens atsauces skaitītājs vai vairāki?
sobes.tech AI
Atbilde no AI
// shared_ptr izmanto kopīgu atsauces skaitītāju,
// kas tiek glabāts kontrolblokā.
// Šis kontrolbloks arī satur informāciju par lietotāja delete (deleter)
// un lietotāja alokatoru, ja tie tika nodrošināti, izveidojot shared_ptr.
// Katra kopija shared_ptr, kas norāda uz to pašu objektu,
// atsaucas uz šo vienīgo kontrolbloku un palielina/mazina
// kopējo skaitītāju kopēšanas/noņemšanas laikā.
// Papildus kopīgajam atsauces skaitītājam shared_ptr,
// kontrolbloks arī satur vāju atsauces skaitītāju (weak count)
// vājiem norādītājiem (weak_ptr), kas norāda uz to pašu objektu.
// Tādējādi, katram objektam, ko pārvalda shared_ptr,
// ir tikai viens stiprs atsauces skaitītājs (shared_ptr) un viens vāju atsauces skaitītājs (weak_ptr),
// glabāts vienā kontrolblokā.