Middle
Shared_ptr ունի միայն մեկ հղման հաշվիչ, թե շատ?
sobes.tech AI
Պատասխան AI-ից
// shared_ptr օգտագործում է ընդհանուր հղումային հաշվիչ,
// որը պահվում է կառավարման բլոկում:
// Այս կառավարման բլոկը նաև պարունակում է օգտատիրոջ delete (deleter)
// և օգտատիրոջ ալոկատորին մասին տեղեկություններ,
// եթե դրանք տրամադրվել են shared_ptr ստեղծելիս:
// Յուրաքանչյուր պատճեն, որը ցույց է տալիս նույն օբյեկտին,
// հղում է այս միակ կառավարման բլոկին և ավելացնում/գումարում է
// ընդհանուր հաշվիչը պատճենման/ջնջման ժամանակ:
// Բացի ընդհանուր հղումային հաշվիչից՝ shared_ptr-ի համար,
// կառավարման բլոկը նաև պարունակում է թույլ հղումների հաշվիչ (weak count)
// թույլ հղումների համար (weak_ptr), որոնք ցույց են տալիս նույն օբյեկտին:
// Այսպիսով, յուրաքանչյուր օբյեկտի համար, որը կառավարում է shared_ptr,
// կա միայն մեկ ուժեղ հղումային հաշվիչ (shared_ptr-ի համար) և մեկ թույլ հղումային հաշվիչ (weak_ptr-ի համար),
// որոնք պահվում են մեկ կառավարման բլոկում: