我很惊讶地发现我无法使用范围解析运算符从另一个范围转发声明一个类,即
class someScope::someClass;
相反,完整的声明必须使用如下:
namespace
{
class someClass;
}
有人可以解释为什么会这样吗?
更新:为了澄清,我问为什么会出现这种情况。
最佳答案
您不能在其命名空间之外声明一个类,因为编译器无法识别 someScope 的类型。
namespace{ } 需要声明命名空间的存在,然后,将 class someClass 声明到您的作用域中。
关于c++ - 在命名空间中转发声明类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3279781/