Visual C++ .NET - enums dentro de structs

 
Vista:

enums dentro de structs

Publicado por Arturo (1 intervención) el 25/10/2008 21:13:41
como puedo accesar a un enum dentro de una estructura de la forma

struct cuadrado{

enum color{

verde,
blanco,
azul,
};

}

main{

cuadrado a = new cuadrado();

a.color.azul <----- no me funciona, y kiero hacerlo de esa forma

si puedo pero de la forma triagulo.color pero eso no hace referencia al cuadrado a;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Acceder a un enum dentro de una estructura

Publicado por Alejandro (265 intervenciones) el 05/02/2024 21:21:07
En C++, los enums definidos dentro de una estructura (o clase) no están directamente accesibles mediante una instancia de la estructura. En cambio, debes utilizar el nombre de la estructura (o clase) seguido por el nombre del enum para acceder a los miembros del enum. Además, debes declarar la instancia de la estructura antes de intentar acceder al enum. Aquí tienes un ejemplo corregido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
struct Cuadrado {
    enum Color {
        verde,
        blanco,
        azul,
    };
};
 
int main() {
    Cuadrado a;
 
    // Acceder al enum a través del nombre de la estructura
    Cuadrado::Color colorAzul = Cuadrado::azul;
 
    std::cout << "Color Azul: " << colorAzul << std::endl;
 
    return 0;
}

En este ejemplo, se declara una instancia de la estructura `Cuadrado` llamada `a`, y luego se accede al enum `Color` a través del nombre de la estructura `Cuadrado`. Esto evitará el error que mencionas.

Recuerda que los enums son constantes enteras, por lo que puedes asignar su valor a variables del mismo tipo (en este caso, `Cuadrado::Color`).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar