Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将一个类的嵌套枚举用作另一个类的嵌套枚举?_C++_Enums - Fatal编程技术网

C++ 如何将一个类的嵌套枚举用作另一个类的嵌套枚举?

C++ 如何将一个类的嵌套枚举用作另一个类的嵌套枚举?,c++,enums,C++,Enums,下面的代码将在第enum en=A::en行给出编译错误但它描述了我要做的事情(使A的嵌套枚举也成为B的嵌套枚举) #包括 使用名称空间std; 结构A { 枚举a_en{X=0,Y=1}; }; 结构B { 枚举b_en=A::A_en;//语法错误 }; int main() { 不能将枚举放在a和B都可以继承的基类中。使用 struct B: A { }; 而不是 struct B { enum b_en = A::a_en; }; 当类/结构以这种方式关联时,您应该继承它们。

下面的代码将在第
enum en=A::en行给出编译错误但它描述了我要做的事情(使
A
的嵌套枚举也成为
B
的嵌套枚举)

#包括
使用名称空间std;
结构A
{
枚举a_en{X=0,Y=1};
};
结构B
{
枚举b_en=A::A_en;//语法错误
};
int main()
{

不能将枚举放在a和B都可以继承的基类中。

使用

struct B: A
{
};
而不是

struct B
{
    enum b_en = A::a_en;
};

当类/结构以这种方式关联时,您应该继承它们。将公共枚举放在基类中,以便所有派生(相关)类都可以访问它

MFC'
CFile
类定义了枚举,该枚举
CStdioFile
和其他派生类可以使用:

enum OpenFlags {
        modeRead =         (int) 0x00000,
        modeWrite =        (int) 0x00001,
...    };
enum OpenFlags {
        modeRead =         (int) 0x00000,
        modeWrite =        (int) 0x00001,
...    };