我是从Java/AS3-land进入C++的,并且我已经习惯了类的package-cum-folder结构。我喜欢它。

我了解C++中 namespace 的基础知识,并且很高兴将其保留为基础知识。但是,随着我的项目变得越来越复杂,我想以一种可以保持头脑清醒的方式来组织文件夹结构。即类似于Java/AS3。

1)是否有没有文件夹结构的原因,例如:

src/
 model/
 view/
 controller/

可能有子文件夹? (这只是一个MVC示例,文件夹结构可以根据项目的需要而定。)在其中包含大量头文件和源文件的src/文件夹似乎是不明智的。

2)如果对1)的回答可能是“继续做您想做的事”,是否为每个文件夹创建一个 namespace 是不明智/不必要的,类似于Java/AS3为每个文件夹创建包的方法?我的理解是, namespace 通常不像这样使用,而是嵌套得很深并且与文件夹相关。

最佳答案

我一直很喜欢每个文件夹的 namespace 。通常是因为当我必须维护别人的代码时, namespace 可以帮助我找到最初定义类的位置。

虽然命名文件头文件也可以帮助解决此问题。我也不建议使用超过2-3个 namespace ,因为那样只会令人讨厌。您会发现自己使用“使用 namespace 等等”;我经常发现很多东西都是C++代码的危险信号。而且,如果没有发生一些严重的问题,则不能在头文件中使用“使用命名空间”。

尽管在C++中,它们都是完全可选的。

09-10 04:39
查看更多