본문 바로가기
C++ 200제/코딩 IT 정보

C++ 세미콜론 에러, 클래스 선언 후 추가 필수

by vicddory 2019. 3. 13.

저도 예전엔 자주 유발했던 부분입니다. 클래스 생성 후 맨 뒤에 세미콜론 빼먹어서 오류가 발생하는 문제였었죠. 비주얼스튜디오 버전이 올라가며 이런 문제에서 자유로워질 줄 알았는데, 어쩔 수 없이 2010, 2008 등을 사용할 때엔 비슷한 문제를 또 유발하네요;;;;


C++ 세미콜론 에러, 클래스 선언 후 추가 필수


예를 들어 이런 상황입니다.


1
2
3
#include "myClass.h"
;
using namespace std;
cs


2번 라인 ; 세미콜론이 있으면 컴파일 에러가 발생하지 않는데, 세미콜론을 빼면 컴파일 에러가 발생합니다.


c++ 기본 syntax 따르자면 세미콜론이 있으면 안 됩니다. 근데, 왜 세미콜론이 있어야 정상, 없으면 오류일까요?


정답은 클래스 선언에 있습니다. 아래 예시를 보시죠.


1
2
3
4
5
6
7
class myClass
{
    public:
        blabla...
    private:
        blabla...
};
cs


7번 라인에 클래스 선언 종료와 함께 세미콜론이 붙어 있습니다. 여기서 세미콜론이 빠지면 위와 같은 비정상적인 신텍스 에러가 발생하는 겁니다.


error C2143: 구문 오류 : ';'이(가) 'using' 앞에 없습니다.


낮은 버전 비주얼스튜디오에서 이 부분을 에러로 인식하지 못합니다. 그리고 리눅스 환경에서도 발생하고요. 또한, Qt Creator, Qt에서도 발생하는 에러입니다.


세미콜론 때문에 고민이라면 클래스 선언부를 먼저 살펴봐야겠습니다.


ⓒ written by vicddory

댓글