Re: case Something: { } break;
От: orangy Россия
Дата: 16.09.02 10:36
Оценка: 3 (1)
Здравствуйте Belegel, Вы писали:

B>В операторе switch() нельзя объявлять переменные. Иногда это не очень удобно (хотя вполне терпимо).

Дело не в том, что "нельзя" потому, что нельзя. Проблема возникает в том случае, когда switch обходит инициализацию объекта. Та же ерунда для goto Решение — ввести локальный scope для объекта
switch (a)
{
 case 1:
 { 
   A a; // у этой переменной scope - локальный блок, она умрёт при выходе из него
 }
 break;
 case 2:
 // здесь уже нет a
 break;
 default:
 { 
   B a; // а здесь "a" другая
 }
 break;
}
... << J 1.0 alpha 4 >>
"Develop with pleasure!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.