هل هناك مؤشر ذكي يتم إظهار تلقائيا عند تدمير هدفه في C ++

StackOverflow https://stackoverflow.com/questions/909437

سؤال

لقد وجدت QPointer.. وبعد هل هناك أي الآخرين؟

هل كانت مفيدة؟

المحلول

تعزيز - ال weak_ptr لديه بعض الميزات الجميلة التي تجعلها آمنة للاستخدام، إذا كنت تستخدم أيضا shared_ptr. وبعد يمكنك الاحتفاظ weak_ptr إشارة إلى مثيل يديره shared_ptr أوقات الحياة. عندما تحتاج إلى استخدام المثيل الأساسي، تحويله إلى shared_ptr مثيل باستخدام منشئ shared_ptr الطبقة، أو lock طريقة. ستفشل العملية إذا تم حذف المثيل الأساسي. الاستخدام هو مؤشر الخيط في نفس الموضة shared_ptr صف دراسي:

shared_ptr<int> p(new int(5));
weak_ptr<int> q(p);

// some time later

if(shared_ptr<int> r = q.lock())
{
    // use *r
}

نصائح أخرى

"Boost :: ضعيف_ptr" يعمل بشكل جيد حقا مع "دفعة :: Shared_ptr" (متوفر أيضا في TR1)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top