Sobes.tech
Middle

Kas shared_ptr-l ainult üks viitearvutaja või neid on mitu?

sobes.tech AI

Vastus AI-lt

// shared_ptr kasutab ühise viidete loenduri,
// mis salvestatakse kontrollplokki.
// See kontrollplokk sisaldab ka teavet kasutaja delete (deleter)
// ja kasutaja allocatori kohta, kui need on loodud shared_ptr loomisel.

// Iga koopia shared_ptr, mis viitab samale objekti,
// viitab sellele ühele kontrollplokile ja suurendab/vähendab
// ühise loenduri kopeerimise/kustutamise ajal.

// Lisaks ühisele viidete loendurile shared_ptr jaoks,
// sisaldab kontrollplokk ka nõrga viidete loendurit (weak count)
// nõrkade näitajate (weak_ptr), mis viitavad samale objektile.

// Seega, iga objekti jaoks, mida hallatakse shared_ptr-ga,
// on ainult üks tugev viidete loendur (shared_ptr jaoks) ja üks nõrk viidete loendur (weak_ptr jaoks),
// salvestatud ühes kontrollplokis.