如何将一个类的嵌套枚举用作另一个类的嵌套枚举
How use nested enum of one class as a nested enum of another?
下面的代码将在enum en = A::en;
上给出编译错误,但它描述了我想要做的(使A
的嵌套enum也成为B
的嵌套enum)。
#include <iostream>
using namespace std;
struct A
{
enum a_en{X = 0, Y = 1};
};
struct B
{
enum b_en = A::a_en; //syntax error
};
int main()
{
cout << B::X << endl;
return 0;
}
那么问题是我如何在c++中做这样的事情?
将枚举放入a和B都可以继承的基类中
使用
struct B: A
{
};
不是struct B
{
enum b_en = A::a_en;
};
当类/结构以这种方式关联时,您应该继承它们。将公共枚举放在基类中,以便所有派生(相关)类都可以访问它。
MFC' CFile
类定义了枚举,CStdioFile
和其他派生类可以使用:
enum OpenFlags {
modeRead = (int) 0x00000,
modeWrite = (int) 0x00001,
... };
相关文章:
- 在模板类内部定义的枚举上的嵌套类的部分专用化
- 为什么 clang 不允许通过实例访问嵌套枚举类?
- 在嵌套名称说明符中使用枚举(编译器警告)
- 用于枚举绑定但未连接的套接字的 API
- 为什么可以获取此枚举成员值,而不必先深入研究嵌套枚举
- 为了简洁起见,在另一个文件中定义前向声明的嵌套结构/类/枚举
- POD 类中的嵌套枚举是否使它不是 POD
- 由于嵌套了枚举类,C++循环依赖关系
- 嵌套枚举类型的Postfix增量器重载
- 为嵌套在类中的枚举定义运算符
- 内部类访问外部类嵌套枚举
- 对嵌套枚举的c++操作
- 无法解析嵌套枚举
- 操作符++用于嵌套私有枚举-哪个编译器是正确的
- 如何将一个类的嵌套枚举用作另一个类的嵌套枚举
- 是否存在用于嵌套枚举类的接口机制
- 如何使用嵌套枚举实现代码重用
- 为什么无法推导出嵌套在模板类中的枚举的模板参数?
- 无法访问嵌套私有枚举的枚举
- 使用嵌套C++类和枚举的优点和缺点