선언부와 구현부(a.k.a 정의부) 둘 모두에 디폴트 매개변수를 지정하면 컴파일 오류가 발생한다.
두 매개변수의 값이 다르게 지정될 수 있기 때문이다.
그래서 둘 중 어느 곳에 지정하는 것이 바람직한지 검색해보았다.
선언부에 작성하는 것이 바람직하다고 한다.
컴파일러는 함수나 클래스가 작성된 컴파일 유닛(오브젝트 파일)을 컴파일할 때 헤더 파일을 참조한다.
디폴트 매개변수가 지정된 함수를 호출하는 코드를 컴파일할 때 기본값을 지정하기 때문에 구현부에 지정된 디폴트 매개변수는 상관 없다는 것이다.
void print(int num = 10);
void print(int num)
{
cout << num;
}
'C++ > 기타' 카테고리의 다른 글
재사용 가능한(Reusable) 코드 작성 (0) | 2023.02.16 |
---|---|
배열의 크기를 확인할 때 주의할 점 (0) | 2023.02.13 |
실수를 비교하는 방법 (0) | 2023.01.30 |
람다 식(Lambda expression) (0) | 2023.01.21 |
펑터(Functor) (0) | 2023.01.21 |