enums nested in a class
Aug 6, 2016 at 3:46pm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
// forward declaration, doesn't work
// enum Cage::Bird;
class Cage
{
Cage::Bird f_bird;
public:
Cage( Cage::Bird bird) : f_bird(bird) {}
enum Bird{ Nightingal, Sparrow };
};
int main() {
Cage::Bird my_pet = Cage::Sparrow;
}
|
What's the right way nesting an enum inside a class?
Aug 6, 2016 at 3:56pm
Sth. like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
#include <iostream>
using namespace std;
class Cage
{
public:
enum Bird
{
Nightingal, Sparrow
};
Cage (Bird bird) : f_bird (bird) {}
Bird getBird ()
{
return f_bird;
}
private:
Bird f_bird;
};
int main ()
{
Cage::Bird my_pet = Cage::Sparrow;
cout << "my_pet " << (int)my_pet << "\n\n";
Cage cage (Cage::Nightingal);
cout << "cage bird: " << (int)cage.getBird () << "\n\n";
return 0;
}
|
Aug 6, 2016 at 4:28pm
Thank you, Thomas!
Topic archived. No new replies allowed.