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,
... };