AAA.h


class SpecialChat;


class Logger

{

public:

// 원하는 내용을 클라이언트에 뿌린다.

static void Log(SpecialChat::CHAT_TYPE type, const char* format, ...);

};

------------------------------------------------------------------------

BBB.h


class SpecialChat

{

public:

enum class CHAT_TYPE : byte

{

GREEN = 0,

SYSTEM_MESSAGE = 0x3,

RED = 0x4,

GRAY = 0x5,

UNDEFINED = 0x12

};

}

-------------------------------------------------------------------------

main.cpp


#include "AAA.h"

#include "BBB.h"


int main()

{

return 0;

}



이렇게 선언해서 AAA.h 안에 포워드 선언 해서 Circular dependency 없애려고 했는데


에러가 


오류 1 error C2027: 정의되지 않은 형식 'SpecialChat'을(를) 사용했습니다.

오류 2 error C2061: 구문 오류 : 식별자 'CHAT_TYPE'


이렇게 뜹니다.


즉, 포워드 선언을 인식을 못한다는거 같은데


어떻게 해야 될까요


enum 을 클래스안에 선언한게 잘못일까요


AAA.h 위에 그냥 #include "BBB.h" 하면 동작하긴 하는데 나중에 Circular dependency 생긴다고 알고 있습니당