1

I have enumeraion in Class A and class B have class A instance as member. How can I access Class A enumeraion in Class B using this instance

Class A{
   enum ab{
   a 1,
   b 2 };
}

IN class B i need to get this enumeraion

Daniel Daranas
  • 22,454
  • 9
  • 63
  • 116
Sijith
  • 3,740
  • 17
  • 61
  • 101

4 Answers4

3
A::ab

As long as ab is public.

Of course you need to fix the syntax of your enum first.

See also this question.

Community
  • 1
  • 1
Daniel Daranas
  • 22,454
  • 9
  • 63
  • 116
2

Like this:

class A
{
public:
   enum ab{
   a = 1,
   b = 2 };
}

class B
{
   A::ab myVariable;
}
Nikola Dimitroff
  • 6,127
  • 2
  • 25
  • 31
2

You access the type via

A::ab;

and the values via

A::a;
A::b;

Of course, this assumes ab is public.

Stefano Falasca
  • 8,837
  • 2
  • 18
  • 24
1
#include <iostream>
using namespace std;

class A{
   public:
   enum ab{
   a= 1,
   b= 2 };
};

class B{
    public:
    void test()
    {
        enum A::ab x=A::a;
        cout << "test A::a = " << x << endl;
        x=A::b;
        cout << "test A::b = " << x << endl;
    }
};

int main()
{
    cout << "A::a = " << A::a << endl;
    cout << "A::b = " << A::b << endl;
    class B b;
    b.test();
}

The enumerated names a,b do reside in class A namespace so, you can access them using A:: prefix like A::a.

nio
  • 5,141
  • 2
  • 24
  • 35