Alors, quelqu'un pourrait-il me dire pourquoi ?
Ceci est clairement indiqué dans basic.scope.class/4 C'est moi qui souligne :
Le site portée potentielle d'une déclaration qui s'étend jusqu'à la fin ou au-delà de celle-ci d'une définition de classe également s'étend aux régions défini par son même si les membres sont définis lexicalement. en dehors de la classe (cette inclut des définitions de membres de données statiques les définitions de classes imbriquées et des définitions de fonctions membres, y compris le corps de la fonction membre membre et toute partie de la partie déclarante de ces définitions. qui suit le declarator-id, y compris un clause de déclaration de paramètre et tout argument par défaut).
Ainsi, lorsque vous avez
int A::a = 200;
int a = 100;
int A::b = a; // note the '::' scope resolution operator
// OUTPUT: 200
a
se réfère en fait à A::a
parce que le portée de la classe es étendu por A::b
.
Contrairement à ce que vous avez :
int A::a = 200;
int a = 100;
int b = a; // note b is not A::b
// i.e. without the '::', scope resolution operator
// OUTPUT: 100
a
se référerait à l'interface (globale) ::a
depuis b
ici n'est pas un membre de class A
,
c'est-à-dire aucune extension de la portée de la classe.
1 votes
Je ne suis pas un expert en langues, mais je pense que dès que vous écrivez
A::b
dans votre énoncé d'affectation, vous faites le calcul de la portée à l'aide de l'optionA
et la classea
là. Pour accéder à l'espace globala
il devrait être quelque chose commeint A::b = ::a;
.15 votes
@AmirRasulov : Eh bien, jusqu'à présent, 11 personnes (dont moi) pensent que la question montre un effort de recherche, est utile et est claire.
13 votes
@AmirRasulov - C'est un site de questions-réponses. Le seuil d'appartenance d'une question est sa qualité objective (comme Bathsheba l'a souligné), et non la simplicité de la réponse pour vous ou moi.
7 votes
@AmirRasulov Vous pourriez utiliser cet argument pour chaque question sur ce site...
0 votes
@AmirRasulov (0) C'est sur le sujet. (1) Il est simple et compris par de nombreuses personnes. (donc, malheureusement, si elle est dans un sujet obscur, elle obtiendra moins de votes positifs, même si elle est bien documentée). (2) C'est sur HNQ.