Explicación ampliada (2026): el error suele aparecer cuando un salto entre etiquetas case puede omitir la inicialización de una variable declarada en el mismo ámbito. La solución habitual consiste en delimitar cada caso que declara variables mediante llaves.
switch (opcion) {
case 1: {
int valor = 1;
std::cout << valor << '\n';
break;
}
default:
break;
}
El ejemplo original que aparece abajo contiene una errata en la palabra switch y simplifica el problema; se conserva como referencia histórica.
Al producirse el siguiente error de compilación en c++:
error: crosses initialization of
frecuentamente producido en una sentencia «switch case», es solucionable mediante la inclusión entre llaves ( {} ) del bloque de código.
swtich (opcion)
case 1: {
cout << "hola" << endl;
break;
}
Otros artículos relacionados: Renombrar columnas en SQLite