CS/C++

전방선언이 필요한 이유?

혀니리리 2023. 12. 8. 17:07
728x90

C++ 전방 선언 :: Gyong (tistory.com)

 

C++ 전방 선언

전방 선언 -> 외부 파일 어딘가에 해당 클래스가 존재한다고 알려주는 역할 다양한 파일들을 만들고 서로 엮는 과정에서 불필요한 파일의 정보까지 가져오는 상황이 발생한다. 이를 해결하기 위

gyong0.tistory.com

코딩맛집 :: [C++] 전방선언 (Forward Declaration) (tistory.com)

 

[C++] 전방선언 (Forward Declaration)

C++에서 미리 함수를 정의하지 않으면 순차적으로 코드를 읽어들여 오류를 발생시킨다. (식별자 찾을 수 없음) 그러나 전방선언이 이뤄졌다면 컴파일러는 오류 없이 지나간다. C++ 전방선언 (Forwar

coding-restaurant.tistory.com

C++ 전방선언 (Forward Declaration)

식별자를 정의하기 전 식별자의 존재를 컴파일러에 미리 알리는 것
필요에 따라 함수, 변수, 클래스 등을 전방선언한다.

 

C++에서 미리 함수를 정의하지 않으면 순차적으로 코드를 읽어들여 오류를 발생시킨다. (식별자 찾을 수 없음)
그러나 전방선언이 이뤄졌다면 컴파일러는 오류 없이 지나간다.

 

장점:  컴파일 시간을 단축시킨다. 
헤더포함 의존성을 줄여준다.

 

include와 전방 선언의 차이점

 

include

-> 기존에 존재하는 정보를 확인할 수 있다.

 

전방 선언

-> 어딘가에 존재한다는 것을 알 수 있지만 상세한 정보는 알 수 없다.

 

전방 선언 시 주의 사항

 

#1. 존재만 알려준다.

-> 프로그램에서 전방 선언한 것이 존재하는지 검사를 하지 않는다.

-> 오타가 발생할 경우 찾기 힘들다.

 

#2. 존재만 알기 때문에 객체를 만들 수 없다.

-> 단, 포인터형으로는 사용이 가능하다

 

#3. 객체의 멤버 함수를 사용하는 곳은 .cpp파일이다.

-> .cpp파일에서는 include를 해주어야 한다.

 

728x90