Cześć.
Problem przedstawię na przykładzie:
Załóżmy, że mam enum class Button o elementach kolejno: play, pause, stop. Następnie tworzę klasę Radio o polu button typu Button(z enum class). Teraz chciałbym, aby klasa Radio miała wyłączny dostęp do enum class Button .
Koniec przykładu.
Jak to uzyskać?
Potencjalne rozwiązania i powody, dla których ich nie wdrożyłem:
1. Definicja enum class Button wewnątrz klasy Radio.
Każdy obiekt będzie miał swoją klasę enum, tylko po co, skoro ma być tylko do odczytu?
2. "Ukrycie" klasy wyliczeniowej w przestrzeni nazw.
To chyba tak, jakbym zabezpieczył hasłem fragment kodu. Mam klasę Radio w pliku Radio.h, który załączam do main.cpp, by móc z niej korzystać. Jeśli poznam przestrzeń nazw, to będę mógł korzystać z enum class Button w main.cpp (a miała to robić tylko klasa Radio).
Dodam, że zależy mi na enum, ponieważ wygodnie jest się odnosić do przycisku po jego nazwie, np. if(button == Button::play).
Proszę o pomoc.