I'll start with the code in a class member function removeFromList:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
switch (option) {
case 'c':
case 'C':
strcpy(tempArray, " ");
list[index].setTitle(tempArray);
//outputFileData function removes index song with empty title cstring
outputFileData();
size--;
strcpy(tempArray, "songs.txt");
songlist(tempArray); //update array with removed index song
break;
case 'm':
case 'M':
return;
case 'r':
case 'R':
break;
default:
cout << "Invalid option please try again.";
continue;
|
If I try and run this code, I get a compile error stating:
g++ -c songlist.cpp -o songlist.o
songlist.cpp: In member function ‘void songlist::removeFromList()’:
songlist.cpp:297:9: error: jump to case label [-fpermissive]
case 'm':
^
songlist.cpp:294:14: note: crosses initialization of ‘songlist tempArray’
songlist(tempArray); //update array with removed index song
^
songlist.cpp:298:9: error: jump to case label [-fpermissive]
case 'M':
^
songlist.cpp:294:14: note: crosses initialization of ‘songlist tempArray’
songlist(tempArray); //update array with removed index song
^
songlist.cpp:300:9: error: jump to case label [-fpermissive]
case 'r':
^
songlist.cpp:294:14: note: crosses initialization of ‘songlist tempArray’
songlist(tempArray); //update array with removed index song
^
songlist.cpp:301:9: error: jump to case label [-fpermissive]
case 'R':
^
songlist.cpp:294:14: note: crosses initialization of ‘songlist tempArray’
songlist(tempArray); //update array with removed index song
^
songlist.cpp:303:4: error: jump to case label [-fpermissive]
default:
^
songlist.cpp:294:14: note: crosses initialization of ‘songlist tempArray’
songlist(tempArray); //update array with removed index song
^
Makefile:11: recipe for target 'songlist.o' failed
make: *** [songlist.o] Error 1
Now I've done some research and I figured out by placing curly braces around the statements belonging to case: 'c':, that this will fix this compile time error. It has something to do with the scope of tempArray, but I still don't quite understand why and how? If someone could explain this I would really appreciate it, because I'm not happy just fixing the code and not understand why.
Thank you!