Namespaces
Organizing code with namespaces
Interview Relevant: Code organization
Namespaces
Namespaces prevent naming conflicts by grouping related code.
Namespace Features
- std:: Standard library namespace
- using: Bring names into current scope
- Nested namespaces: Namespaces within namespaces
- Anonymous namespaces: Internal linkage (like static)
- Inline namespaces: Version control (C++11)
Code Examples
Creating and using namespaces for code organization.
cpp
1// Defining a namespace
2namespace MyLib {
3 int value = 42;
4 void print() {
5 std::cout << "MyLib" << std::endl;
6 }
7}
8
9// Using namespace members
10MyLib::print();
11int x = MyLib::value;
12
13// using directive (brings all names)
14using namespace std; // Avoid in headers!
15cout << "Hello" << endl;
16
17// using declaration (specific name)
18using std::cout;
19using std::endl;
20
21// Nested namespaces (C++17)
22namespace A::B::C {
23 void foo() {}
24}
25A::B::C::foo();
26
27// Anonymous namespace (internal linkage)
28namespace {
29 int internal_var = 10; // Only visible in this file
30}
31
32// Namespace alias
33namespace fs = std::filesystem;