Scope dla switcha i tworzenie obiektów

0

Cześć,

Mam pewien problem z kolegą, mianowicie:

switch (liczba)
{
	case 1:
		abc a; 
		break;
	case 2: 
		abc b; 
		break;
}

W powyższym przypadku występuje błąd, ponieważ jedna ze zmiennych będzie nie zainicjalizowana, zgadza się?
Natomiast w przypadku poniższym:

switch (liczba)
{
	case 1:
		abc a; 
		break;

		abc b; 
		break;
}

Kiedy już nie ma linijki z case 2, wtedy kompilator już nie rzuca błędem, lecz nie do końca jest to dla Nas zrozumiałe. Pomijając przypadek, że liczba != 1, w przypadku kiedy wynosi ona 1, jest tworzony obiekt a, natomiast co się dzieje ze zmienną b? Przecież tam jest break i do zmiennej b już nie powinno dojść wykonanie programu, więc nie powinno być - analogicznie do poprzedniego przypadku - błędu?

Dzięki z góry za pomoc

0

opakuj te działania w case'ach w nawiasy i będzie wszystko w porządku, 1 się też skompiluje

przeczytaj odpowiedź w tym poście:
http://stackoverflow.com/questions/7044574/about-the-braces-in-case-statement-in-switch

a tutaj jeszcze więcej o tym:
http://stackoverflow.com/questions/11578936/getting-a-bunch-of-crosses-initialization-error

1 użytkowników online, w tym zalogowanych: 0, gości: 1