Envisager de code suivant:
#include <iostream>
using namespace std;
int main()
{
int x, y, i;
cin >> x >> y >> i;
switch(i) {
case 1:
// int r = x + y; -- OK
int r = 1; // Failed to Compile
cout << r;
break;
case 2:
r = x - y;
cout << r;
break;
};
}
G++ se plaint crosses initialization of 'int r'
.Mes questions sont les suivantes:
- Qu'est -
crosses initialization
? - Pourquoi le premier initialiseur
x + y
passer à la compilation,mais le plus tard échoué? - Quels sont les problèmes de la soi-disant
crosses initialization
?
EDIT:
Je sais que je devrais utiliser des parenthèses pour préciser le champ de l' r
, mais je veux savoir pourquoi,par exemple, pourquoi les non-POD n'a pas pu être défini en multi-cas de l'instruction switch.
Merci.