ما هي مساحة الاسم ؟ لماذا تكتب باستخدام مساحة الاسم هذه الجملة؟
هذه آلية تم تقديمها حديثًا في لغة C++، وهي تهدف أساسًا إلى حل مشكلة تعارض الأسماء بين وحدات متعددة، تمامًا مثل شخصين يحملان نفس الاسم في الحياة الواقعية. يضع C++ نفس الأسماء في مسافات مختلفة لمنع تعارض الأسماء.
على سبيل المثال، يتم تخزين الكائنات التي توفرها مكتبة C++ القياسية في مساحة الاسم القياسية std، مثل cin وcout وendl، لذلك سنرى الجملة باستخدام مساحة الاسم std في برامج C++، مثل البرنامج:
#include<iostream>usingnamespacestd;intmain(){cout<<Nicetomeetyou!<<endl;return0;}
إذا كان البرنامج يستخدم cout وendl، فيجب إعلامه مسبقًا لاستخدام مساحة الاسم std. بالإضافة إلى ذلك، هناك طريقتان أخريان للكتابة.
النوع الثاني: استخدم مؤهل المجال:: لتحديد واحدًا تلو الآخر ويمكن أيضًا كتابة الكود على النحو التالي:
#include<iostream>intmain(){std::cout<<Nicetomeetyou!<<std::endl;return0;}
هل رأيت ذلك؟ يتم تحديد cout وendl على التوالي بـ std::، مما يشير إلى أنهما يأتيان من std.
الطريقة الثالثة: استخدم استخدام ومؤهلات المجال لتحديد الأسماء التي سيتم استخدامها، مثل الكود:
#include<iostream>usingstd::cout;usingstd::endl;intmain(){cout<<Nicetomeetyou!<<endl;return0;}
هل رأيت ذلك؟ يمكنك أيضًا استخدام use للإعلان عن الاسم المحدد أولاً.
يمكنك استخدام أي من الطرق الثلاث المذكورة أعلاه من أجل التوحيد والراحة في المستقبل، سنعتمد طريقة الكتابة الأولى في دروسنا.
ومن الجدير بالذكر أنه في الواقع، لم يكن لمعيار C++ المبكر مفهوم مساحة الاسم، وكان ملف الرأس المضمن هو نفس ملف C، مع اللاحقة .h. إنه فقط أنه عند استخدام ملف رأس بدون .h لتضمينه في المعيار الجديد، يجب الإعلان عن مساحة الاسم، ويأتي ملف الرأس المضمن أولاً، ويتم الإعلان عن مساحة الاسم المستخدمة أخيرًا.