אפשר לקבל הסבר על namespace?

HaRmosh

New member
namespace

כשמו כן הוא, מרחב שמות. מה זה אומר ? שכשאתה מגדיר אותו, כל הפונקציות\משתנים שבתחומו נחשבים כשייכים לו, כך שניתן להגדיר פונקציות\קבועים אחרים לגמרי מבחינת קוד או משמעות אך בעלי שם זהה במרחב שמות אחר. לדוגמה ב-CPP:
namespace ns1 { void f(int a, int b) { ... } } namespace ns2 { void f(int a, int b) { ... } } int a, b; using namespace n1; f(a,b); // the ns1 f(...) will be called using namespace n2; f(a,b); // the ns2 f(...) will be called​
כלומר, הדבר משמש לנוחות בלבד ומאפשר הימנעות מהתנגשות בין שמות פונקציות ספריה למשל לפונקציות של המשתמש, ע"י ציון שימוש במרחבי שמות שונים.
 

ahab

New member
עוד משהו..

ניתן להשתמש ב-scope operator כדי לגשת לפונקציה/מחלקה ב-namespace כלשהו. כך שאת הקוד בדוגמא הקודמת ניתן לכתוב כ:
namespace ns1 { void f(int a, int b) { ... } } namespace ns2 { void f(int a, int b) { ... } } int a, b; ns1::f(a,b); // the ns1 f(...) will be called ns2::f(a,b); // the ns2 f(...) will be called​
 
למעלה