[에러정리]
[컴파일에러] C2054 에러 발생 경우
AK-KO
2015. 8. 12. 18:01
C++ 에서
; 앞에 ~가 없습니다
형식지정자가 없습니다 ~기본 int를 지원하지 않습니다
등의 에러가 나오면
그 에러가 뜬 부분을 클릭하여
해당 클래스와 에러가 관계되는 클래스에 들어가서
서로 클래스 포함이 교차되지 않았는지 확인해보길 바랍니다!
ex)
A 클래스를 만들었다
B 클래스를 만들었다
1.
A 클래스에 B 클래스를 포함하였다
B 클래스에는 A 클래스를 포함하지 않았다
=> 에러안남
2.
A 클래스에 B 클래스를 포함하였다
B 클래스에 A 클래스를 포함하였다
=> 에러남
★원인
A.cpp 파일에는 A.h 가 포함되어있다.
소스를 읽는 와중에 B.h 를 발견했다.
그럼 B.h 를 포함시키기 위해 B.h 로 들어간다
근데 여기에 또 A.h 가 있다
??????? 아직 컴파일러는 A.h 를 다 읽지 않은 상태이고,
#pragma once 로 인해 헤더파일은 단 한번밖에 읽을 수 없는데
교차했기 때문에 컴파일러는 A 클래스를 없는 클래스로 인식하여 에러를 띄운다.
이렇게 하지 않았는데도 간혹 같은 에러가 뜨는 경우가 있는데
그때는 간접적으로 서로 교차된 것이니 확인해볼것!
http://ekessy.tistory.com/20
여기 게시물을 보고 이해하여 제가 빠르게 이해할 수 있도록 정리한 것입니다
만약 서로 교차가 필요할 경우엔, 이 곳에서 확인!