728x90
반응형

디폴트 매개변수

  • 매개 변수의 디폴트 값

C++에서는 함수의 매개 변수에 다음과 같이 값을 대입하는 형태를 취함으로써 디폴트 값이라는 것을 설정할 수 있다. 디폴트 값이라 함은 기본적으로 설정되어 있는 값을 이야기한다.

매개 변수의 선언을 할 때, 값을 대입하는 형태로 선언되어 있는데 이는 다음과 같은 의미를 내포하고 있다.

함수 호출 시 인자를 전달하지 않으면 미리 대입된 값으로 전달된 것으로 간주하겠다.

그렇기 때문에 14번 라인에서 값이 전달되지 않더라도 함수의 정의, 선언 부분에 디폴트로 대입된 값으로 인자가 전달된 것으로 간주하고 함수 실행이 수행된 것이다.

  • 디폴트 값은 함수의 선언 부분에만 표현

  1. main 함수 윗 부분에 함수 정의 및 선언하는 경우

    2. 함수의 정의와 선언을 분리하는 경우 -> 선언 부에 디폴트 값을 기재하고 정의에는 기재하지 않음.

  • 부분적인 디폴트 값의 설정

위의 예처럼 매개 변수의 디폴트 값을 부분적으로 채울 수 있는데 중요한 것은 매개 변수의 오른쪽부터 왼쪽으로 차례대로 채워 나가는 형식으로 디폴트 값을 설정해야 한다는 것이다. 이렇게 행하는 이유는 함수에 전달되는 인자는 왼쪽에서 오른쪽으로 채워지기 때문.

  • 함수 오버로딩과 디폴트 매개 변수의 모호성

위와 같은 예는 func라는 함수 이름으로 오버로딩이 적용되고 있으나 6번 라인에서의 디폴트 값 정의, 11번 라인의 인자를 받지 않는 void 형태의 인자 정의로 인해 19번 라인에서 오버로딩 된 func 함수 호출 시 어떤 함수를 호출해야 하는지 알 수 없는 애매한 상황이다. 가급적 이런 경우를 피해서 코딩

728x90
반응형

'컴퓨터 언어 정리 > C++ 언어' 카테고리의 다른 글

06 이름 공간(namespace)  (0) 2020.09.08
05 인라인 함수(inline function)  (0) 2020.09.07
03 함수 오버로딩(Function Overloading)  (0) 2020.09.06
02 Bool 자료형  (0) 2020.09.06
01 C++언어의 첫 기본 예제  (0) 2020.09.06

+ Recent posts