0

是否可以在 C++ 中创建类似于它在 C# 中的工作方式的命名空间层次结构。例如,如果我需要一种类型来处理 C# 中的颜色,我可以通过使用以下命令深入到命名空间中以获取适当的类型:

System.drawing.color;

类型。在这种情况下,名称空间似乎是在项目级别解析的,并由包含该类型的名称空间确定。对于此代码所针对的开发人员,他们可以在自动完成中获得所有这些内容,而无需在文件夹和文件中搜索该类型。在 C++ 中,我可能必须首先包含适当的头文件,此时我觉得我们已经经历了为适当类型查找源代码并找到包含这些类型的文件的麻烦。在 C++ 中,它看起来像:

#include "Core/Color.h"
Color c = new Color();

IDE 在这里给我的帮助很少。我必须对正确的类型进行目录搜索。除非每个人都专门使用正确的文件名和目录结构,否则目录范式似乎会崩溃,但情况并非总是如此。

为了解决这个问题,看起来我不仅必须为我的所有类型提出一个命名空间层次结构,这不是一个大问题,而且我还必须提出一个标题层次结构来消除不断搜索代码以找到包含这些类型的正确文件的问题。

主头文件层次结构是否会给编译器、预处理器或生成的编译代码带来问题,因为我们基本上会将链上的所有其他头文件(当然最多)都包含在新文件中?

最后,我想要一种方法来帮助使用此代码的开发人员,让他们的 IDE 可以深入了解所有类型,而无需执行我们目前必须做的所有 grepping。可能已经有一种方法可以在 IDE 中快速执行此操作,此时我不需要利用语言本身来解决此类开发问题,但我似乎找不到它。

4

1 回答 1

1

请参阅以下 SO 讨论以及 SO 用户 C++ 命名空间建议之一如何处理此问题 http://www.adamjamesnaylor.com/2012/10/23/NestedNamespacesInC.aspx

于 2014-01-22T15:41:33.370 回答