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.