في علوم الحاسوب والبرمجة المؤشر الذكي (بالإنجليزية: Smart Pointer)‏، هو نوع بيانات مجرد يحاكي عمل المؤشرات مع توفير مزايا أخرى منها جمع المهملات الآلي، وفحص الحدود.[1][2][3] هذه المزايا الإضافية تعمل على تجنب المشكلات الناتجة عن الاستخدام الخاطئ للمؤشرات، وذلك مع الحفاظ على الفاعلية المطلوبة. تحتفظ المؤشرات الذكية بمعلومات عن الكائنات التي تشير إليها بغرض إدارة الذاكرة.

يعد الاستخدام الخاطئ للمؤشرات مصدرا رئيسيا للمشكلات؛ فعمليات حجز الذاكرة، إلغاء حجزها، والارتباطات المرجعية التي تحدث ضمن أي برنامج مكتوب باستخدام المؤشرات ينشأ عنها خطر تسرب الذاكرة. وتعمل المؤشرات الذكية على منع تسرب الذاكرة عن طريق جعل عملية إلغاء حجز الذاكرة تحدث بشكل تلقائي: عندما ينتهي مؤشر (أو آخر مؤشر ضمن مجموعة مؤشرات) لكائن ما، على سبيل المثال بسبب خروجه عن نطاق التنفيذ، فحينها يدمر الكائن الذي يشير إليه هذا المؤشر أيضا.

مراجع عدل

  1. ^ boost::shared_ptr thread safety(does not formally cover std::shared_ptr, but is believed to have the same threading limitations) نسخة محفوظة 11 أكتوبر 2008 على موقع واي باك مشين.
  2. ^ Sutter، Herb (20 أبريل 2013). "Trip Report: ISO C++ Spring 2013 Meeting". isocpp.org. مؤرشف من الأصل في 2017-08-20. اطلع عليه بتاريخ 2013-06-14.
  3. ^ "Taligent's Guide to Designing Programs, section Use special names for copy, create, and adopt routines". مؤرشف من الأصل في 2017-07-10.

انظر أيضًا عدل