कोड को व्यवस्थित करने का एक महत्वपूर्ण तरीका नेमस्पेस है।
दो फंक्शन के नाम आपस में टकरा सकते हैं। इसे उन्हें अलग-अलग नेमस्पेस में रखकर हल किया जा सकता है।
नेमस्पेस को नेस्टेड भी किया जा सकता है, जिससे बड़े कोड बेस को व्यवस्थित करने में मदद मिल सकती है।
नेमस्पेस तक पहुँच स्कोप-रेसोल्यूशन ऑपरेटर :: से होती है।
नीचे दिया गया उदाहरण दो अलग-अलग foo फंक्शन के उपयोग को दिखाता है।
इन्हें एक साथ इस्तेमाल करने के लिए उनके अपने-अपने नेमस्पेस नाम के आगे लगाए जाते हैं।
namespace my_ns {
int foo() {
return 44;
}
namespace my_inner_ns {
int baz() {
return 90;
}
}
}
namespace my_other_ns {
int foo() {
return -2;
}
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
बहुत गहराई तक नेस्टेड नेमस्पेस काफी लंबे हो सकते हैं।
इस लंबाई को using से नेमस्पेस इंपोर्ट करके कम किया जा सकता है।
इससे सारे नाम ग्लोबल नेमस्पेस में चले जाते हैं।
कुछ अंतर बनाए रखने के लिए एलियस काम आ सकते हैं।
int my_other_result{my_ns::my_inner_ns::baz()};
using namespace my_ns::my_inner_ns; // importing the complete namespace
int also_other_result{baz()};
namespace m = my_ns; // setting an alias
namespace o = my_other_ns;
int also_my_result{m::foo() + o::foo() * m::my_inner_ns::baz()};