帮助描述在片段的最后一行中查找名称x的过程:
struct S { static int x; void f(); };
int S::x;
int x;
void S::f() { x; // <-- }
答案 0 :(得分:0)
我不确定自己是否理解您的问题,但是如果您想访问全局变量x
而不是成员x
,则可以使用scope resolution operator
{{1} }
::
答案 1 :(得分:0)
[basic.lookup.unqual] / 8中描述了类成员函数主体中不合格名称的名称查找过程。依次搜索以下范围:
因此,在这种情况下,首先搜索S::f()
的正文以找到x
的声明;这失败了,因此寻找名称为S
的类x
的成员;这将找到静态成员S::x
。在考虑全局范围之前,查找过程将停止。