Каково в 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
?
bar()
, который также объявляетshadowed
. - person Carl Norum   schedule 10.05.2010bar()
. - person Emile Cormier   schedule 10.05.2010