在我正在使用的库中,一些变量是这样声明的:
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/