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 |