En C++, ¿cuál es la resolución del alcance ("orden de precedencia") para shadowed nombres de variables? Parece que no puedo encontrar una respuesta concisa en línea.En C++, ¿cuál es la resolución del alcance ("orden de precedencia") para nombres de variables sombreados?
Por ejemplo:
#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();
}
No puedo pensar en cualquier otra ámbitos donde una variable podría entrar en conflicto. Por favor, avíseme si me perdí una.
¿Cuál es el orden de prioridad de las cuatro variables shadow
cuando está dentro de la función de miembro bar
?
Puede tener un bloque de código dentro de 'bar()' que también declara 'shadowed'. –
"resolución de alcance" –
Caso agregado para el bloque de código dentro de 'bar()'. –