السلام عليكم ...
اتسال ماهي فائدة استخدام namespace في c++ فكما نعرف الان مجرد استخدام using namespace std;
تفي بالغرض فما هي فائدة استخدامها
وشكرا لكم ...
فكرة مجالات الأسماء هى وضع مجموعه من المتغيرات تحت اسم واحد بمعنى لو قلنا
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 هو مجال الأسماء العام الذى يحتوى على كل شىء فى السى بلس بلس لا حظ البرامج الآتيه
int main()
{
cout<<"i love c++";
return 0;
}
والثانى
using namespace std;
int main()
{
cout<<"i love c++";
return 0;
}
الثالث
int main()
{
cout<<"i love c++";
return 0;
}
أول لن يعمل لأن الكمبايلر لن يتعرف على الكائن cout لأن الهيدر مكتوب بدون
.h
أما الثانى والثالث فسيعملان بلا مشاكل
ماذا تلاحظ ؟
الجمله التى سألت عنها اغنتنا عن كتابة نوع الهيدر فايل دوت اتش
لأن جميع الكلمات القياسيه للسى بلس بلس مندرجه تحت مجال الأسماء
std فتم الوصول الى cout عن طريق مجال الأسماء
وهذا توضيح بإختصار شديد
وأرجو أن أكون أوصلت المعلومه أو جزء منها
بالتوفيق
التعليقات