i’m coming into C++ from Java/AS3-land, and i’m used to the package-cum-folder structure for my classes. and i like it.
i understand the very basics of namespaces in c++, and i’m happy to leave it at just the basics. but, as my project gets more complex, i’d like to keep my folder structure organized in a way i can keep in my head. i.e. something similar to Java/AS3.
1) is there any reason to not have a folder structure like:
src/
model/
view/
controller/
possibly with subfolders? (this is just an MVC example, the folder structure could be whatever depending on the project’s needs.) it just seems unruly to have a src/ folder with a huge pile of header and source files within.
2) if the answer to 1) could be “go ahead and do what you want”, would it be unwise/unnecessary to create a namespace for each folder, similar to Java/AS3’s way of creating a package for each folder? my understanding is that namespaces are not usually used like this, nested deeply and folder-related.
I’ve always liked the namespace for each folder. Mostly because when I have to maintain somebody else’s code, the namespace helps me find where the class was originally defined.
Well named header files can also help with this though. I also wouldn’t suggest going more than 2-3 namespaces, as then it just becomes obnoxious. You’ll find yourself using “using namespace blah;” a lot which I always find to be a red flag for C++ code. And you can’t use “using namespace” inside a header file without some severe problems occurring.
It’s all completely optional though in C++.