Enum w klasie

Odpowiedz Nowy wątek
2019-01-11 15:32
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?

edytowany 2x, ostatnio: kq, 2019-01-11 15:34

Pozostało 580 znaków

2019-01-11 15:34
kq
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 :​(


Pozostało 580 znaków

2019-01-11 15:39
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.

Pozostało 580 znaków

2019-01-11 17:00

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

enum TypZwierzaka {
    Pies,
    Kot,
    Mysz
};
 
class Zwierzaki {
public:
    TypZwierzaka typ_zwierzaka;
    void UstawNazwe(TypZwierzaka);
};

Pozostało 580 znaków

2019-01-11 18:24
0

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

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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