1

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

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

在 B 类中,我需要得到这个枚举

4

4 回答 4

3
A::ab

只要ab是公开的。

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

另请参阅此问题

于 2013-07-25T15:26:36.500 回答
2

像这样:

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

class B
{
   A::ab myVariable;
}
于 2013-07-25T15:26:56.157 回答
2

您可以通过以下方式访问该类型

A::ab;

和值通过

A::a;
A::b;

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

于 2013-07-25T15:27:45.410 回答
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.

于 2013-07-25T15:28:26.680 回答