مفهوم النطاقات في لغة البرمجة ++C – Namespaces
يُعد مفهوم النطاق (Namespace) في لغة البرمجة (++C) من الأساليب المفيدة جداً في عملية تنظيم الكود البرمجي (Codes)، حيث يتم استخدامه من قبل المبرمج لضمان عدم حدوث أي مشكلة يكون سببها استخدام نفس أسماء العناصر التي تم تعريفها أكثر من مرة، أي لتجنب حدوث تضارب في الأسماء، حيث تظهر مشكلة تضارب الأسماء عندما يقوم المبرمج بتضمين مكتبات وملفات فيها كود جاهز فهنا يصبح هناك احتمال كبير لحدوث تضارب بالأسماء.
ولاستخدام أسماء العناصر في الكود البرمجي بدون الخوف ما إن كان تضمين أي كود جاهز فيه قد يسبب مشكلة تضارب الأسماء، فإن المبرمج يقوم من البداية وضع الكود الخاص به بداخل نطاق (Namespace)، في هذه الحالة حتى إذا كان الكود فيه نفس أسماء المتغيرات والدوال والكلاسات الموجودة في الكود الجاهز فإن هذا الأمر لن يسبب أي مشكلة بالنسبة للمترجم لأنه قادر على التفريق بينهم بكل سهولة.
الشكل العام لتعريف النطاق في لغة البرمجة ++C
تستخدم الكلمة المحجوزة (namespace) في لغة البرمجة (++C) لتعريف نطاق جديد، ومن ثم وضع الكود فيه أو تُستخدم لتعريف اسم مختصر لنطاق موجود مسبقاً، حيث أن وضع الكود بداخل نطاق يسهل عمل المبرمج لأنه يتيح له إعادة استخدام نفس أسماء العناصر المعرّفة مسبقاً في نفس المكان، والشكل العام لتعريف النطاق في لغة البرمجة سي بلس بلس على النحو التالي:
namespace namespace_ name { هنا يقوم المبرمج بوضع الكود البرمجي الذي يرغب بتعريفه داخل النطاق// }
حيث:
- مكان الكلمة (namespace_name) يقوم المبرمج بوضع الاسم الذي يريده للنطاق.
- بين أقواس البداية و النهاية ({…}) يقوم المبرمج بتعريف أي كائن يريده مثل: المتغيرات أو الدوال، أو كلاسات و من الممكن أيضاً أن يقوم بتعريف نطاقات داخل نطاقات أخرى.
الشكل العام لتعريف نطاق بداخل نطاق آخر في لغة البرمجة ++C
في لغة البرمجة (++C) يستطيع المبرمج بتعريف نطاق بداخل نطاق آخر وهذا الأسلوب يسمى (Nested Namespaces)، ويتم تعريفه على النحو التالي:
namespace outer_namspace_name { namespace inner_namespace_name { } }
- حيث مكان الكلمة (outer_namespace_name) يتم وضع اسم النطاق الخارجي وبداخل حدوده يمكنك كتابة أي كود يريده المبرمج.
- مكان الكلمة (innner_namespace_name) يتم بوضع اسم النطاق الداخلي وبداخل حدوده يمكنك كتابة أي كود يريده المبرمج.