C++ 这是c++;? #包括 名称空间X { int k=8; } int main() { 使用名称空间X; int k=0; 标准::cout
它是: 对于非限定名称,该名称不会出现在 范围解析运算符的右侧::,名称查找检查 作用域,直到找到至少一个 任何类型,此时查找将停止,并且不需要进一步的作用域 检查 因为C++ 这是c++;? #包括 名称空间X { int k=8; } int main() { 使用名称空间X; int k=0; 标准::cout,c++,lookup,C++,Lookup,它是: 对于非限定名称,该名称不会出现在 范围解析运算符的右侧::,名称查找检查 作用域,直到找到至少一个 任何类型,此时查找将停止,并且不需要进一步的作用域 检查 因为k不会出现在范围解析运算符的右侧。它是: 对于非限定名称,该名称不会出现在 范围解析运算符的右侧::,名称查找检查 作用域,直到找到至少一个 任何类型,此时查找将停止,并且不需要进一步的作用域 检查 由于k不出现在范围解析运算符的右侧。No,是std::cout导致了No的限定查找我正在查找变量k,限定查找和非限定查找之间的差异
k
不会出现在范围解析运算符的右侧。它是:
对于非限定名称,该名称不会出现在
范围解析运算符的右侧::,名称查找检查
作用域,直到找到至少一个
任何类型,此时查找将停止,并且不需要进一步的作用域
检查
由于
k
不出现在范围解析运算符的右侧。No,是std::cout
导致了No的限定查找我正在查找变量k,限定查找和非限定查找之间的差异取决于要查找的名称。这里,这就是std中的k
::cout
。using指令还不重要;编译器首先必须确定它是一个不合格的查找。只有这样,using
才重要。因此,using
不能影响查找类型的选择。不,是std::cout
导致了的合格查找。不,我正在考虑查找变量k限定查找和非限定查找之间的差异取决于要查找的名称。这里是std::cout
中的k
。using指令还不重要;编译器首先必须确定它是非限定查找。只有这样using
才有意义。因此,using
不会影响查找类型的选择。@HovhannesVardanyan编辑问题答案时,问题答案往往无效。这不是工作原理。我对该网站是新手,我没有意识到这一点,但在新代码中,如果它是非限定查找,为什么不将名称空间作为声明(通常是这样的)来处理而是打印0@HovhannesVardanyan名称查找的工作原理是另一个问题。如果你愿意,我建议你发布另一个问题。原来的问题得到了回答:这是不合格的名称查找。@HovhannesVardanyan当编辑问题答案时,往往会无效。这不是工作原理。看,我是这个网站的新手,我不是真的尽管如此,但在新代码中,如果它是非限定查找,为什么不使用名称空间作为声明(通常是这样)呢而是打印0@HovhannesVardanyan名称查找是如何工作的是另一个问题。如果你愿意,我建议你为此发布另一个问题。原来的问题得到了回答:这是不合格的名称查找。
#include <iostream>
namespace X
{
int k = 8;
}
int main()
{
using namespace X;
int k = 0;
std::cout << k;
return 0;
}