C++/기타

디폴트 매개변수(Default Parameter)

diesuki4 2023. 1. 30. 10:42

 

선언부와 구현부(a.k.a 정의부) 둘 모두에 디폴트 매개변수를 지정하면 컴파일 오류가 발생한다.

두 매개변수의 값이 다르게 지정될 수 있기 때문이다.

 

그래서 둘 중 어느 곳에 지정하는 것이 바람직한지 검색해보았다.

 

 

default parameters in .h and .cpp files

COMPILER: g++ 4.7.2 Ok. So I am confused about default parameters in .h and .cpp files. It is mentioned in many places( including this site) that default parameters can be added only in .h files ...

stackoverflow.com

선언부에 작성하는 것이 바람직하다고 한다.

 

컴파일러는 함수나 클래스가 작성된 컴파일 유닛(오브젝트 파일)을 컴파일할 때 헤더 파일을 참조한다.

 

디폴트 매개변수가 지정된 함수를 호출하는 코드를 컴파일할 때 기본값을 지정하기 때문에 구현부에 지정된 디폴트 매개변수는 상관 없다는 것이다.

 

void print(int num = 10);

void print(int num)
{
    cout << num;
}