아무리 코드를 봐도 원인을 못 찾던 오류다.
구글링해봤지만 구글링해도 답이 안 나오던 오류
스스로 답을 찾았다.
해결법 1. #paragma once
헤더 선언 시, 여러번 중복되어 include되면 오류가 발생할 수 있다.
맨 첫줄에 #pragma once를 넣어 한 번만 include하도록 고쳐 주자.
해결법 2. 클래스 간 include관계 수정
내 문제는 이거였다. 해결법 1을 써도 안 되던 경우. 클래스 간의 관계를 확인해보자.
아래 코드를 보면 Store클래스와 NPC클래스가 서로 include하고 있다. 바로 이 때문에 오류가 났던 것!
Store를 컴파일하려면 NPC가 필요하고, NPC를 컴파일하려면 Store가 필요하고, 그럼 또 Store에서는 NPC가 필요하고..
`Store.h`의 #include "NPC.h"를 지워줬더니 해결됐다.
양쪽이 서로서로 include하는 일이 없도록 하자!
1
2
3
4
5
6
7
8
9
10
11
12
|
//Store.h
#pragma once
#include "NPC.h"
class Store{//Store 정의
};
// NPC.h
#pragma once
#include "Store.h"
class NPC {//NPC 선언
};
|
//Store.h
#pragma once
#include "NPC.h"
class Store{//Store 정의
};
// NPC.h
#pragma once
#include "Store.h"
class NPC {//NPC 선언
};
ㅠㅠ 코드블럭 안 이뻐
'Study > C++' 카테고리의 다른 글
[미니 스타듀밸리] 3. GUI창 상황에 맞게 펼치기 (0) | 2019.06.26 |
---|---|
[오류] 클래스 템플릿 "std::array"에 대한 인수가 너무 적습니다 (0) | 2019.06.26 |
[미니 스타듀밸리] 2. GUI 프로젝트 만들고 콘솔과 연동하기 (0) | 2019.06.26 |
[미니 스타듀밸리] 1. 프로젝트 생성 & 클래스 다이어그램 그리기 (0) | 2019.06.25 |
[미니 스타듀밸리] 0. 준비 (0) | 2019.06.24 |