Область видимости в c++
Имеется отрезок кода:
int main (int argc, char* argv[])
{
if ( argc == 2 )
{
Alpha x(argv[1]);
}
if ( argc == 3 )
{
Alpha x(argv[1], argv[2]);
}
if ( argc != 2 && argc != 3 )
{
cout << "Arguments error" << endl;
return 1;
}
cout << x << endl;
return 0;
}
который при попытке компиляции выдает ошибку:
user@user:~$ g++ lab4.cpp
lab4.cpp:100:18: error: ‘x’ was not declared in this scope
100 | cout << x << endl;
| ^
Значит ли это, что x находится вне области видимости, и как лучше поступить в данной ситуации, не переписывая вывод в каждую отдельную проверку количества аргументов?
Источник: Stack Overflow на русском