On this page
Namespaces
Say you and your partner are working on a project and you each have your folder of classes. Then when you try to put all your code together for a test you find that some of your class names are the same.
This often happens when working with big projects/libraries
Solution:
namespace yourname {
...
}
EX:
your code
namespace AnthonyCode{
class Pilk{
...
};
}
someone else’s code
namespace BingusCode{
class Pilk{
...
};
}
int main(){
AnthonyCode::Pilk p; // using your class
BingusCode::Pilk p; // using your friends class
}
Think of namespaces as if you have manually added to the front of your class name
your code
class AnthonyCode_Pilk{
...
};
someone else’s code
class BingusCode_Pilk{
...
};
int main(){
AnthonyCode_Pilk p; // using your class
BingusCode_Pilk p; // using your friends class
}
Note:
Anything inside the `namespace` brackets now needs to have the prepended name before it.Other ways of using namespaces
namespace AnthonyCode{
class Pilk{
...
};
}
namespace AnthonyCode{
int main(){
Pilk p(); // Note you don't need the AnthonyCode:: anymore
}
}
OR
using namespace AnthonyCode;
int main(){
Pilk p(); // Note you don't need the AnthonyCode:: anymore
}
Note
name spaces are a thing in other languages like python or java
TODO: make 2 name spaces example