I have a switch statement in my C++ code, and want to declare and use a variable inside a case of that statement. The variable will only be used inside the scope of that particular case.
switch(mode)
{
case abc:
    ...
    struct commonData;
    commonData = manager->getDataByIndex(this->Data.particularData);
    int someInt = 1;
    ...
    break;
case xyz:
    ...
    commonData = Manager->getDataByIndex(this->Data.particularData);
    break;
default:
    ...
    break;
}
I tried simply declaring, initialising and using the variable (int someInt) just inside that case, but this gave me a few compile errors... Having come across this question on SO: Why can't variables be declared in a switch statement?, I tried doing what the answer suggested, and added {} to the case in question, so my switch now looks like this:
switch(mode)
{
case abc:
    {
    ...
    struct commonData;
    commonData = manager->getDataByIndex(this->Data.particularData);
    int someInt = 1;
    ...
    break;
    }
case xyz:
    ...
    commonData = manager->getDataByIndex(this->Data.particularData);
    break;
default:
    ...
    break;
}
But I'm now getting compile errors that say: "undeclared identifier" on a variable (commonData) that is used inide the xyz case of the switch.
Having had a look into this- it seems that this variable is declared inside the abc case of the switch... So obviously, since I have added the {} to abc, by trying to use it outside abc, I am now trying to use it outside the scope of its declaration.
So why is it that I can't declare/ use someInt in the same way as commonData has been declared/ used without the need for the {} inside the case where it's declared?
 
     
     
     
     
    