В С++, каково разрешение области ( "порядок приоритета" ) для shadowed имена переменных? Кажется, я не могу найти краткий ответ в Интернете.
Например:
#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
?