Dlaczego nie mogę przypisać zmiennej typu wyliczeniowego wartości?

0
#include <vector>
using namespace std;
 
struct struktura
{
    enum enumeration {ene,due,like,fake} wyl;
    struct whatever {int costam; char costam2;};
    vector<whatever> whatever_tab;
};
 
vector<struktura> strukt_tab;
 
int main()
{
    struktura pom;
    pom.wyl=like;
    strukt_tab.push_back(pom);
    return 0;
}

Błąd kompilacji:

prog.cpp: In function ‘int main()’:
prog.cpp:16:13: error: ‘like’ was not declared in this scope
     pom.wyl=like;
             ^

http://ideone.com/0oSPPN

OCB?? Dlaczego nie mogę przypisać zmiennej typu wyliczeniowego wartości? Jak mam sprawić, żeby hlp.wyl miało wartość "like"?

Z góry dzięki.

znaczy, oczywiście, żeby pom.wyl miało wartość "like"... przepraszam za omyłkę

usunięcie zbędnych pustych linii z kodu - fp
połączenie postów i usunięcie znacznika <small> (?!) - fp

0
#include <vector>
using namespace std;
 
struct struktura
{
    enum class enumeration {ene,due,like,fake} wyl;
    struct whatever {int costam; char costam2;};
    vector<whatever> whatever_tab;
};
 
int main()
{
    vector<struktura> strukt_tab;
    struktura pom;
    pom.wyl = struktura::enumeration::like;
    strukt_tab.push_back(pom);
    return 0;
}
0

Twój enum jest zdefiniowany w strukturze struktura, więc, aby odwołać się do wartości like musisz użyć operatora zasięgu.

struktura::like
0

Dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1