Enum w klasie

0

Witam, na wstępie chciałem zaznaczyć, że sens implementacji takiego rozwiązania nie jest narzucony przeze mnie tylko prowadzącego. Musze w klasie zaimplementować

class Zwierzaki{
public:
enum TypZwierzaka{
Pies,
Kot,
Mysz
};
};

A następnie w int main wywołać metode UstawNazwe w taki sposób

Zwierzaki zwierzak;
zwierzak.UstawNazwe(Mysz);

I walczę z tym już dłuższy czas i mnie to przerasta. Jak ta metoda powinna mieć parametry? I dlaczego w int main jest błąd, że 'Mysz' was not declared in this scope?

0

Mysz była zadeklarowana w klasie, więc nie ma jej w globalnej przestrzeni nazw.

Zwierzaki zwierzak;
zwierzak.UstawNazwe(Zwierzaki::Mysz);

API narzucone przez prowadzącego nie ma sensu :​(

0

W zakresie publicznym pole przechowujące:typ zwierzaka będącą elementem typu wyliczeniowego TypZwierzaka (Pies,Kot,Mysz) -> To polecenie.
A w kodzie normalnie jest to

int main{
Zwierzaki zwierzak;
zwierzak.UstawNazwe(Mysz);
}

Ja do tego (int main jest szerszy, ale z resztą na spokojnie sobie radzę )+ parę innych poleceń muszę dobudować resztę programu tak, żeby to działało.

2

W poleceniu to pole ma być w klasie, nie enum.

enum TypZwierzaka {
    Pies,
    Kot,
    Mysz
};

class Zwierzaki {
public:
    TypZwierzaka typ_zwierzaka;
    void UstawNazwe(TypZwierzaka);
};
0

@Delor: Problem rozwiązany :) Enum nie ma być w klasie tylko pole i wtedy wszystko działa. Dziękuje :)

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