Título: Error C2360: la inicialización de edad se omite por la etiqueta case Publicado por: digimikeh en 26 Febrero 2019, 00:58 am Que tal..
Este error sinceramente no le hallo lógica, imagino que debe ser un tipo de política de c++... Código
Código
Debo declarar siempre sin definir una variable cuando entro al cuerpo de un case ? Título: Re: Error C2360: la inicialización de edad se omite por la etiqueta case Publicado por: K-YreX en 26 Febrero 2019, 01:44 am Esto sucede porque una variable creada en un <case> del <switch> sigue existiendo en el resto de <case>. Pero no tienen el valor inicializado y por eso si escribes la inicialización junto a la declaración, te va a dar un error.
Una forma de solucionar eso es separando la inicialización de la declaración como has visto tú. Y otra forma es usar llaves {} para crear un bloque. :-X Código
Título: Re: Error C2360: la inicialización de edad se omite por la etiqueta case Publicado por: digimikeh en 26 Febrero 2019, 13:39 pm entiendo me suena aun un poco extraño pero ya veo como funciona...
Gracias. Título: Re: Error C2360: la inicialización de edad se omite por la etiqueta case Publicado por: CalgaryCorpus en 26 Febrero 2019, 15:51 pm En C++ esta permitido saltar sobre definiciones.
Código
Pero esta prohibido saltar las declaraciones con inicializaciones. Ejemplo: Código
cada case de un switch es una etiqueta, y la variable es visible dentro de todo el switch, en el case actual y los siguientes. Dado que la ejecucion del switch es un salto a cada etiqueta, al poner una definicion con inicializacion, se da el caso que esta prohibido, por ello el error de compilacion. |