c++ - C++ 中命名空间中的变量声明

标签 c++ variables scope reference declaration

在我正在使用的库中,一些变量是这样声明的:

char &ns::x = y;

但是,如果我这样做,我会收到以下错误: 错误:命名空间“ns”中没有名为“x”的成员

如果我重写它,它会起作用:

namespace ns {
    char &x = y;
}

具体有什么区别?为什么它在图书馆内运作?

最佳答案

如果您是对的并且库中的代码与所写的完全一致,那么这意味着在此库的其他地方,您会发现以下声明:

namespace ns {
    extern char& x;
}

换句话说,x 必须已经在 ns声明(并且没有定义!)。

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

相关文章:

python - C++ Boost Python numpy 数组初始化

C++ 使用结构体作为类的参数

python - 是否可以 "dynamically"在 Python 中创建局部变量?

python - 如何将特定变量从一个类继承到另一个类?

swift - 在变量中重用 NSSlider 中的值

ios - 在 Objective-C 中创建仅对子类可见的属性

c++ - 将LibSVM输出转换为浮点 vector

scala - 匹配案例的Scala返回值

javascript - 为什么可以将 'module.exports' 作为 'exports' 访问,但不能使用 'module.id' 访问?

c++ - 为什么以下运算符重载不明确?