Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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++_C++11_Enums_Forward Declaration - Fatal编程技术网

C++ 如何前向声明类中定义的枚举

C++ 如何前向声明类中定义的枚举,c++,c++11,enums,forward-declaration,C++,C++11,Enums,Forward Declaration,根据,可以向前声明枚举。但是,如果没有定义在其中声明枚举的类或结构,会发生什么?那么追索权是什么 我也经历过,但它没有回答这个问题 例如: 文件A1.h 文件A2.h 你是说,类似于?啊!对这个问题还没有解决!?:(据我所知,没有。也许有其他解决方案可以解决你的问题?你能提供一个例子吗?除非某个东西只由类使用,否则将它放在类之外以防止类似的问题。你可以将类和相关的支持定义放在命名空间中。@Adrian,我想你误解了Neil Kirk,他说,除非omething仅由类使用。这意味着如果您在其他地方

根据,可以向前声明枚举。但是,如果没有定义在其中声明枚举的类或结构,会发生什么?那么追索权是什么

我也经历过,但它没有回答这个问题

例如:

文件A1.h

文件A2.h


你是说,类似于?啊!对这个问题还没有解决!?:(据我所知,没有。也许有其他解决方案可以解决你的问题?你能提供一个例子吗?除非某个东西只由类使用,否则将它放在类之外以防止类似的问题。你可以将类和相关的支持定义放在命名空间中。@Adrian,我想你误解了Neil Kirk,他说,除非omething仅由类使用。这意味着如果您在其他地方使用它,您可能应该将其放在类之外。不过,您可以将其分配到适当的命名空间。
struct A1 {
  enum E1 { x1, y1, z1 };
  void fn1(A1::E1& e);
  void fn1(A2::E2& e);
};
struct A2 {
  enum E2 { x2, y2, z2 };
  void fn2(A1::E1& e);
  void fn2(A2::E2& e);
};