不同类中的枚举访问

时间:2013-07-25 15:22:39

标签: c++

我在A类中有枚举,B类有A类实例作为成员。 如何使用此实例

访问B类中的A类枚举
Class A{
   enum ab{
   a 1,
   b 2 };
}

在B班我需要得到这个枚举

4 个答案:

答案 0 :(得分:3)

A::ab

只要ab是公开的。

当然,您需要先修复枚举的语法。

另见this question

答案 1 :(得分:2)

像这样:

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

class B
{
   A::ab myVariable;
}

答案 2 :(得分:2)

您可以通过

访问该类型
A::ab;

和值

A::a;
A::b;

当然,这假设ab是公开的。

答案 3 :(得分: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();
}

枚举名称a,b确实位于A类名称空间中,因此,您可以使用A::前缀A::a来访问它们。