הצגנו מרחבי שמות להלן סט 1.
מרחב השמות ב- C ++ | סט 1 (מבוא)
הגדרת מרחב שמות:
הגדרת מרחב השמות מתחילה במרחב השמות של מילות המפתח ואחריו שם מרחב השמות כדלקמן:
אחים של קיילי ג'נר
מרחב שמות NAMESPACE_NAME
{
// הצהרות קוד כלומר משתנה (int a;)
שיטה (void add ();)
שיעורים (תלמיד כיתה {};)
}
יש לציין כי אין סמיקולון (;) לאחר הסד הסגירה.
כדי להתקשר לגרסה המאפשרת מרחב שמות של פונקציה או משתנה להכין את שם מרחב השמות באופן הבא:
NAMESPACE_NAME :: קוד; // קוד יכול להיות פונקציה או מחלקה משתנים.
ההנחיה המשתמשת:
אתה יכול גם להימנע מהכנת מרחבי שמות באמצעות הנחיית מרחב השמות. הנחיה זו אומרת למהדר כי הקוד שלאחר מכן עושה שימוש בשמות במרחב השמות שצוין.
מרחב השמות משתמע אפוא על הקוד הבא:
#include using namespace std; // first name space namespace first_space { void func() { cout << 'Inside first_space' << endl; } } // second name space namespace second_space { void func() { cout << 'Inside second_space' << endl; } } using namespace first_space; int main () { // This calls function from first name space. func(); return 0; }
שמות שהוצגו בהנחיה ציית לכללי היקף רגילים. השם נראה מנקודת ההנחיה השימוש עד סוף ההיקף בו נמצאת ההנחיה. ישויות עם אותו שם המוגדר בהיקף חיצוני מוסתרות.
מרחבי שמות מקוננים:
ניתן לקנן מרחבי שמות במקום בו תוכלו להגדיר מרחב שמות אחד בתוך חלל שם אחר כדלקמן:
פיתון קו חדש
SYNTAX: namespace namespace_name1 { // code declarations namespace namespace_name2 { // code declarations } } אתה יכול לגשת לחברי מרחב השמות המקונן על ידי שימוש במפעילי רזולוציה כדלקמן:
// כדי לגשת לחברים ב- NameSpace_name2
באמצעות מרחב השמות NAMESPACE_NAME1 :: NAMESPACE_NAME2;
// כדי לגשת לחברי מרחב השמות: name1
באמצעות מרחב שמות NAMESPACE_NAME1;
בהצהרות לעיל אם אתה משתמש בשמות NAMESPACE_NAME1 אז זה יהפוך אלמנטים של NAMESPACE_NAME2 בהיקף כדלקמן:
#include using namespace std; // first name space namespace first_space { void func() { cout << 'Inside first_space' << endl; } // second name space namespace second_space { void func() { cout << 'Inside second_space' << endl; } } } using namespace first_space::second_space; int main () { // This calls function from second name space. func(); return 0; }
ניתן גם ליצור יותר משטח שמות אחד במרחב הגלובלי. ניתן לעשות זאת בשתי דרכים.
-
תְפוּקָה:
-
תְפוּקָה:
- הם שמישים ישירות באותה תוכנית ומשמשים להצהרת מזהים ייחודיים.
- בשטח שמות ללא שם שם של מרחב השמות שלא הוזכר בהצהרת מרחב השמות.
- שם מרחב השמות נוצר באופן ייחודי על ידי המהדר.
- מרחבי השמות שלא נקראו שיצרתם יהיו נגישים רק בתוך הקובץ שיצרתם אותו.
- מרחבי שמות שלא נקראו הם תחליף להצהרת המשתנים הסטטית.
CPP
// A C++ program to show more than one namespaces // with different names. #include using namespace std; // first name space namespace first { int func() { return 5; } } // second name space namespace second { int func() { return 10; } } int main() { // member function of namespace // accessed using scope resolution operator cout << first::func() <<"n"; cout << second::func() <<"n"; return 0; }
5 10
ניתן גם ליצור שני חסימות מרחב שמות עם אותו שם. בלוק מרחב השמות השני אינו אלא למעשה המשך מרחב השמות הפרטי. במילים פשוטות יותר אנו יכולים לומר ששני מרחבי השמות אינם שונים אך למעשה זהים המוגדרים בחלקים.
CPP
// C++ program to demonstrate namespace extension #include using namespace std; // first name space namespace first { int val1 = 500; } // rest part of the first namespace namespace first { int val2 = 501; } int main() { cout << first::val1 <<"n"; cout << first::val2 <<"n"; return 0; }
500 501
מרחבי שמות ללא שם
javascript עבור לולאהCPP
// C++ program to demonstrate working of unnamed // namespaces #include using namespace std; // unnamed namespace declaration namespace { int rel = 300; } int main() { cout << rel << "n"; // prints 300 return 0; }
תְפוּקָה:
300