用C++在另一个类中调用枚举

der*_*khh 3 c# c++ enums

如果我们定义两个C++类.一个是:

abstract class A {
  public:
    enum E {F, G, H;}
};
Run Code Online (Sandbox Code Playgroud)

另一个是B类,那么我如何在A类中使用枚举E呢?假设B和A都在同一名称空间中.我知道在C#中我们可以使用类似的东西:

A.E
Run Code Online (Sandbox Code Playgroud)

直接,但似乎不是C++的情况.

par*_*mar 10

在C++中,.并且->是用于访问的此特定实例的成员A对象.::用于访问类范围内的事物A.这包括静态,枚举和函数指针.

所以在C++中你想要A::F或者A::G你想要枚举值.

你做的枚举类型 A::E

class A
{
public:
    enum E { F , G , H};
    virtual ~A() = 0; //a pure virtual function to make the class abstract
};

int main()
{
    A::E x; // x is declared as the enum
    x = A::F; // x is assigned a particular enum value

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

另外,要使类抽象,您需要提供纯虚函数.