En C++, quelle est la résolution de portée ("ordre de priorité") pour les noms de variables shadowed? Je n'arrive pas à trouver une réponse concise en ligne.En C++, quelle est la résolution de portée ("ordre de priorité") pour les noms de variables ombrés?
Par exemple:
#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();
}
Je ne peux pas penser à d'autres champs d'application où pourrait entrer en conflit une variable. S'il vous plaît laissez-moi savoir si j'en ai manqué un.
Quel est l'ordre de priorité pour les quatre variables shadow
à l'intérieur de la fonction membre bar
?
Vous pourriez avoir un bloc de code à l'intérieur de 'bar()' qui déclare également 'shadowed'. –
"scope resolution" –
Ajout d'un cas de bloc de code dans 'bar()'. –