فكرة مجالات الأسماء هى وضع مجموعه من المتغيرات تحت اسم واحد بمعنى لو قلنا
namespace one
{
int a,b;
char c,d;
}
فهذا يعنى أننا يمكننا أن نصل الى هذه المتغيرات عن طريق باب واحد وهو one
وتتم عملية الوصول هذى عن طريق ما يسمى scope operator ::
فمثلا للوصول الى المتغير a
one::a;
ولكى ابسط الموضوع أنا عن طريق namespace
جعلت المتغيرات الأربعه فى بوتقه واحده وللوصول الى هذى المتغيرات نستخدم اسم namespace والمعامل ::
وبالنسبه لكلمة using فهى تعنى استمراريه استخدام namespace
فى كل أجزاء البرنامج بمعنى بدلا من أن نكرر
one::
كلما اردنا ان نستخدم المتغير a متلا فيكفى أن نقول فى بداية البرنامج
using one::a;
وبهذا يكون المتغير a متاح لنا استخدامه فى كل اجزاء البرنامج
دون ذكر اسم المجال الذى يحويه أقصد طبعا one
std هو مجال الأسماء العام الذى يحتوى على كل شىء فى السى بلس بلس
لا حظ البرامج الآتيه
include
int main()
{
cout<<"i love c++";
return 0;
}
والثانى
include
using namespace std;
int main()
{
cout<<"i love c++";
return 0;
}
الثالث
include
int main()
{
cout<<"i love c++";
return 0;
}
أول لن يعمل لأن الكمبايلر لن يتعرف على الكائن cout لأن الهيدر مكتوب بدون
.h
أما الثانى والثالث فسيعملان بلا مشاكل
ماذا تلاحظ ؟
الجمله التى سألت عنها اغنتنا عن كتابة نوع الهيدر فايل دوت اتش
لأن جميع الكلمات القياسيه للسى بلس بلس مندرجه تحت مجال الأسماء