调用c++中另一个类中的枚举

Calling enums in another class in C++

本文关键字:枚举 另一个 c++ 调用      更新时间:2023-10-16

如果定义两个c++类。一个是:

abstract class A {
  public:
    enum E {F, G, H;}
};

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

A.E

在c++中,.->用于访问A对象的特定实例的成员。::用于访问A类范围内的东西。这包括静态、枚举和函数指针。

在c++中,如果你想要枚举值,你需要A::FA::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;
}
为了使类抽象,还提供了一个纯虚函数

c#只有一个.操作符。c++有多个:., ->::。对于类,使用最后一个。

因此,它将是A::E

还请记住,在c++中,枚举的常量指向父命名空间,而不是像c#中那样指向enum的一个。因此,在c#中,你会有A.E.F,但在c++中,你有A::F