我有一個由嵌套枚舉創建的循環依賴。由於enum類嵌套的C++循環依賴
class A
{
enum class A_enum {};
void method_which_uses_class_B() {}
}
class B
{
void method_which_uses_A_enum() {}
}
這給你一個整體結構的想法。
具體來說,我有這樣定義的枚舉類:
... file containing class A
class A
{
enum class A_enum
{
ITEM_A, ITEM_B
};
// then the rest of A goes here
}
// in my main code file
#include "class B file"
#include "class A file"
... code
因此,該解決方案將是移動的枚舉類出class A
並把代碼/文件/包括在正確的順序,以防止問題。
但是爲了達到我的目的,將enum類嵌套在class A
內相當不錯。有沒有預先定義的方法,將會有一個class A
以及該類內的枚舉是什麼?我嘗試以下,但它沒有工作,因爲我定義的類兩次:
class A;
enum class A::A_enum
{
contenta, contentb
};
或
class A
{
enum class A_enum {...};
}
然後
class A
{
// the rest of it
// obviously doesn't work because already defined class A
}
你能告訴我們循環依賴發生的地方嗎?它是在方法的主體還是在論據中? –