Error 발생 원인
enum class를 선언하고, 공통 헤더에서 prototype만 정의하려는 시도를 진행하였으나, 제목과 같은 에러가 발생하였다.
이러한 현상은 enum class의 구현부의 underlying type과 prototype의 underlying type이 서로 달라 발생하는 오류이다.
예제 코드
global.h
enum class Type;
enumclass.h
#include "global.h"
enum class Type : unsigned int {
A,
B,
C
}
위와 같이 global.h에는 별다른 type을 지정안했으나, enumclass.h에는 별도의 타입이 지정되어 있을 때 발생한다.
해결 방법
이러한 부분은 아래와 같이 타입을 지정해주면 해결 된다.
예제 코드
global.h
enum class Type : unsigned int;
enumclass.h
#include "global.h"
enum class Type : unsigned int {
A,
B,
C
}
'Programming > C & C++' 카테고리의 다른 글
[C++] Inheritance: 'A' is an inaccessible base of 'B' (0) | 2019.06.12 |
---|---|
C에서 날짜 출력하기 (0) | 2015.01.21 |
Const char* vs char* const (0) | 2014.12.24 |
WindowsAPI C언어에서 파일 목록 가져오기 (0) | 2014.11.19 |
C++ SDL 콘솔창 숨기는법 (0) | 2012.08.23 |
C++ STL vector sort 정렬함수 (0) | 2012.08.18 |
C++ sstream( sscanf, 문자열스트림 ) (0) | 2012.08.18 |
__imp__WSACleanup@0 외부 기호(참조 위치: _main 함수)에서 확인하지 못했습니다 (0) | 2012.08.17 |