c++ - 命名空间中声明的数据类型的范围

标签 c++ types namespaces

示例.h

namespace Testing
{
    enum Type
    {
        DATA = 0,
        MORE_DATA
    };
}

现在在 Sample2.h 中,使用相同的命名空间,我可以访问 Sample.h 中定义的数据类型而不包含它吗?

namespace Testing
{
    Type test;
}

问题来了,因为我有实现这个的文件,而且看起来构建没有问题。 另一个用户正在尝试构建,但报告说他必须在 Sample2.h 中 #include "Sample.h"才能构建。

最佳答案

文件构建很可能是因为一些较早的包含文件为您包含了 Sample.h。当省略较早的包含文件(或在 Sample2.h 之后移动)时,文件将不再编译。

关于c++ - 命名空间中声明的数据类型的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7029949/

相关文章:

c++ - 如何为函数指针设置函数属性?

c++ - boost::interprocess 共享内存open_or_create每次都抛出异常

c# - 将字符串数组从 COM 传递到 C#

.net - 当给定部分限定类型名称时,Type.GetType 如何工作?

c# - 在 xaml 中找不到命名空间,但可以在 C# 代码中使用

c# - ASP.NET MVC 中保留的默认命名空间名称在哪里?

c++ - 反转字符串中单词的字母

swift - 给定大小的集合作为 Swift 类型

typescript - 声明具有相同类型的多个 TypeScript 变量

python - 安全使用 GAE 应用程序命名空间