[C/C++] Problem z deklaracją stringa w switchu
Ostatnio zmodyfikowano 2017-08-18 17:46
kombatdavid123 Temat założony przez niniejszego użytkownika |
[C/C++] Problem z deklaracją stringa w switchu » 2017-08-17 18:23:23 Witam, otóż wykonując zadanie stworzenia kalkulatora z kursu, napotkałem problem a mianowicie po zadeklarowaniu zmiennej string wewnątrz switcha, kompilator wyrzuca mi (error - crosses initialization of string LINE oraz error - jump to case label). Zrobilem research i wiem, że muszę tego stringa zadeklarować przed całym switchem ale moje pytanie brzmi dlaczego jeżeli deklaruje wewnatrz switcha zmienne typu float badz int, takiego problemu mi nie wyrzuca. Przykladowy kod: switch( x ) { case 1: float a; float b; case 2: ...... default: ..... switch( x ) { case 1: string LINE; case 2: ...... default: ......
Dodam ze te zmienne a i b typu float sa rowniez uzywane w innych caseach bez ponownej deklaracji |
|
maly7 |
» 2017-08-17 18:32:44 Spróbuj dodać klamry: case 1: { string LINE; } break;
|
|
jankowalski25 |
» 2017-08-17 20:03:52 dlaczego jeżeli deklaruje wewnatrz switcha zmienne typu float badz int, takiego problemu mi nie wyrzuca |
Dlatego, że to są typy POD ( Plain Old Data), czyli nie mają na przykład konstruktorów i destruktorów. Najlepiej wstawiać klamry i nie przeskakiwać definicji zmiennych, mimo że w przypadku typów prostych C++ na to pozwala. |
|
kombatdavid123 Temat założony przez niniejszego użytkownika |
» 2017-08-18 17:46:01 Dziekuje za wyjasnienie ;) |
|
« 1 » |