Switch-Case: объявление-с-инициализацией и объявление-и-затем-присваивание

В операторах switch-case объявление-с-инициализацией недопустимо, но объявление-и-затем-присваивание разрешено. Как показано в следующем фрагменте кода.

В чем разница между этими двумя типами инициализаций со стороны компилятора? И почему первый тип инициализации недействителен, а второй тип допустим.

switch(val)  
{  
case 0:  
  int newVal = 42;  //Invalid
  break;
case 1:  
  int newVal2;      //Valid
  newVal2 = 42;  
  break;
case 2:
  break;
}
6
задан Manjeet Dahiya 21 September 2010 в 05:06
поделиться