在 C++ 中,阴影变量名称的范围解析(“优先顺序”)是什么?我似乎无法在网上找到一个简洁的答案。
例如:
#include <iostream>
int shadowed = 1;
struct Foo
{
Foo() : shadowed(2) {}
void bar(int shadowed = 3)
{
std::cout << shadowed << std::endl;
// What does this output?
{
int shadowed = 4;
std::cout << shadowed << std::endl;
// What does this output?
}
}
int shadowed;
};
int main()
{
Foo().bar();
}
我想不出变量可能会发生冲突的任何其他范围。如果我错过了,请告诉我。
在成员函数shadow
内部时,所有四个变量的优先级顺序是什么?bar