调用c++中另一个类中的枚举
Calling enums in another class in C++
如果定义两个c++类。一个是:
abstract class A {
public:
enum E {F, G, H;}
};
另一个是类B,那么如何在类A中使用枚举E呢?假设B和A在同一个名称空间中。我知道在c#中我们可以使用:
A.E
在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;
}
为了使类抽象,还提供了一个纯虚函数c#只有一个.
操作符。c++有多个:.
, ->
和::
。对于类,使用最后一个。
因此,它将是A::E
。
还请记住,在c++中,枚举的常量指向父命名空间,而不是像c#中那样指向enum的一个。因此,在c#中,你会有A.E.F
,但在c++中,你有A::F
。
相关文章:
- 从另一个C++文件中C++ "Importing"枚举类
- 如何声明另一个类中的枚举
- 为什么将FMTFLAG指定两次 - 作为枚举的一部分,而另一个实例为静态const变量
- 将一个枚举映射到另一个枚举
- 尝试从另一个类传入枚举
- 将枚举传递给另一个文件?C++
- "error C2065: undeclared identifier" 来自另一个标头的枚举
- 为了简洁起见,在另一个文件中定义前向声明的嵌套结构/类/枚举
- 使用来自另一个类的枚举的 C++
- 如何使用类似 Java 的 C++ 枚举作为另一个类的成员变量
- 使用另一个类中的枚举类型
- 多值DWORD枚举作为一个函数参数C++
- 在数组中存储来自另一个命名空间的枚举值
- 另一个类的枚举作为参数
- 为什么我不能将一个枚举作为另一个枚举的基础类型?
- 调用c++中另一个类中的枚举
- 如何将一个类的嵌套枚举用作另一个类的嵌套枚举
- 如何从另一个文件访问类的公共枚举:c++
- 如何在另一个命名空间中定义一个命名空间的枚举并使用ist c++
- C++中另一个类的枚举(使用SFML)