C++에서는 아래와 같이 디폴트 파라미터를 줄 수 있다.



이때 몇 가지 주의사항이 있다.



1. 디폴트 파라미터는 뒤에서부터 줘야 한다.


즉, int foo(x, y = 0, z = 0) 은 되지만 int foo(x = 0, y, z = 0) 은 에러다.


뒤의 방식으로 썼을 경우 foo(1, 1)이라고 썼을 때 x가 생략된 것인지 z가 생략된 것인지 알 수 없다.



2. 선언부와 구현부가 나뉘어져 있을 경우 "선언부"에만 넣어야 한다.


만일 둘 다 디폴트 파라미터를 입력하면 컴파일 에러가 발생한다.


구현부에만 표기하면 디폴트 파라미터를 사용할 수 없게 된다.


외우기보단 이유를 생각해보면 되는데, 구현부는 소스코드에 있기에 미리 컴파일 되어 있으면 컴파일러가 확인할 수 없기에 헤더 파일의 선언부만 컴파일러가 확인할 수 있다. 따라서 구현부에만 넣어 놓은 것은 컴파일 시점에 영향을 미칠 수 없다.

'프로그래밍 > C++' 카테고리의 다른 글

인라인 함수  (0) 2017.10.08
함수 오버로딩  (0) 2017.10.08
printf 형식지정자  (0) 2017.10.03
표준 입력 cin  (0) 2017.08.06
표준 출력 cout  (0) 2017.08.06

+ Recent posts