En las sentencias del conmutador declaración-con-inicialización no es válido pero declara-y-luego-asignación está permitido. Como se muestra en el siguiente fragmento de código.Switch-Case: declaración-con-inicialización y declaración-y-luego-asignación
¿Cuál es la diferencia entre estos dos tipos de inicializaciones desde el lado del compilador? Y por qué el primer tipo de inicialización no es válido y el segundo tipo es válido.
switch(val)
{
case 0:
int newVal = 42; //Invalid
break;
case 1:
int newVal2; //Valid
newVal2 = 42;
break;
case 2:
break;
}
¿Qué compilador estás usando? – NullUserException
Visual Studio 2008 –