c++ - 在命名空间中转发声明类

标签 c++ scope namespaces declaration

我很惊讶地发现我无法使用范围解析运算符从另一个范围转发声明一个类,即

class someScope::someClass;

相反,完整的声明必须使用如下:

namespace
{
    class someClass;
}

有人可以解释为什么会这样吗?

更新:为了澄清,我问为什么会出现这种情况。

最佳答案

您不能在其命名空间之外声明一个类,因为编译器无法识别 someScope 的类型。

namespace{ } 需要声明命名空间的存在,然后,将 class someClass 声明到您的作用域中。

关于c++ - 在命名空间中转发声明类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3279781/

相关文章:

c++ - 带有发布和调试版本的简单 makefile - 最佳实践

c++ - 如何计算 C++ std::map<Key,Values> 中不同值的数量

r - 自定义环境中的范围(功能)

c++ - 返回指向局部变量的指针?? (警告 C4172)

C++/cli 将 LPCSTR 转换为 System::String^

c++ - 使用 MinGW 构建 ActiveQt (COM) 应用程序

r - 使用 .fortran() 编写调用 Fortran 库的 R 包

c++ - 类与命名空间,还是类与命名空间?

JavaScript 范围问题 : variable not being identified

javascript - Firefox 扩展如何最好地避免污染全局命名空间?