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
כלומר, הדבר משמש לנוחות בלבד ומאפשר הימנעות מהתנגשות בין שמות פונקציות ספריה למשל לפונקציות של המשתמש, ע"י ציון שימוש במרחבי שמות שונים.