Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C/C++] Problem z deklaracją stringa w switchu

Ostatnio zmodyfikowano 2017-08-18 17:46
Autor Wiadomość
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:

C/C++
switch( x ) {
case 1:
    float a;
    float b;
case 2:
    ......
default:
    .....// To jest ok
   
    switch( x ) {
    case 1:
        string LINE;
    case 2:
        ......
    default:
        ......// Blad   

Dodam ze te zmienne a i b typu float sa rowniez uzywane w innych caseach bez ponownej deklaracji
P-164071
maly7
» 2017-08-17 18:32:44
Spróbuj dodać klamry:

C/C++
case 1:
{
    string LINE;
}
break;
P-164072
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.
P-164074
kombatdavid123
Temat założony przez niniejszego użytkownika
» 2017-08-18 17:46:01
Dziekuje za wyjasnienie ;)
P-164083
« 1 »
  Strona 1 z 1