Здравствуйте 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 >>