본문 바로가기

C++

함수의 중복 정의 방지

[1. 개요]

C++ 에서는 함수는 반드시 하나의 정의만 가져야 한다.

이렇게 함수를 하나만 정의하는 방법은 아래와 같다.


[2. .cpp 파일에 정의]

가장 일반적인 방법으로, .hpp 파일에 함수의 선언을 명시하고

.cpp 파일에 해당 함수를 정의 함.


[3. .hpp 파일에 정의]

기본적으로 .hpp 에 함수를 선언 및 정의 하는 경우 중복 함수 정의로 인해 컴파일 에러가 발생하게 된다.

그러나 아래와 같은 경우는 중복 함수 정의로 처리하지 않는다.

  • 템플릿 함수 (컴파일 시점에 인스턴스화 해야 함)
  • 클래스의 멤버 함수 나 static 함수
  • inline 함수

여기서 inline 함수는 중복 함수 정의로 처리하지 않는 점을 유념하도록 한다.

'C++' 카테고리의 다른 글

버퍼에 안전한 문자열 함수  (0) 2025.09.09
스레드에 안전한 localtime()  (0) 2025.09.09
segmentation fault 사례 6  (0) 2025.08.22
fsanitize 컴파일 옵션  (2) 2025.07.02
buffer overflow 사례1  (0) 2025.06.26