본문 바로가기
[ CODING STUDY ]/》C++ 공부

C++ 15장 [디폴트 매개변수]

by MRG 2022. 11. 11.
728x90
반응형

▣ 안녕하세요. 이번장에서는 디폴트 매개변수(기본 매개변수)에 대해 공부해보겠습니다.

디폴트 매개변수는 말 그대로 매개변수를 기본으로 정의하는 걸 의미합니다. 

코드를 작성하며 공부해보겠습니다.

 

▣ 클래스를 생성하는 코드를 작성해주시구요.

클래스에 멤버 함수를 생성해주세요.

멤버 함수 매개변수에 int n=10 이런 식으로 디폴트 매개변수를 정의합니다.

그리고 메인 함수에서 객체를 생성하고 c1.sum(), c1.sum(20) 이렇게 호출해주세요.

그럼 sum() 함수처럼 매개변수에 값을 전달하지 않아도 오류 없이 기본으로 지정되어 있는 10을 더한 값을 출력하고

sum(20) 함수 호출은 매개변수를 20으로 전달했기 때문에 디폴트 매개변수는 무시하고 내가 전달한 값 20을 저장하게 됩니다. 그리고 출력 결과는  40이 나오는 걸 확인할 수 있습니다.

다시 말해 디폴트 매개변수는 함수를 호출할 때 전달받은 값이 없으면 디폴트 매개변수 값으로 지정합니다.

 

▣ 이번에는 매개변수를 추가해서 두 개로 선언했습니다.

그리고 각각 디폴트 값을 지정했습니다. 

아까와 동일하게 sum(), sum(20) 호출을 하면 

sum() 함수는 디폴트 매개변수 값으로 합이 나오고 

sum(20) 함수는 맨 처음에 있는 매개변수는 내가 전달한 숫자로 지정이 되고 

두 번째 매개변수는 전달한 값이 없기 때문에 디폴트 값으로 정의되어 30이 출력되었습니다.

다시 말해 앞에서부터 순서대로 매개변수를 전달합니다.

다른 코드도 작성해보겠습니다. 

 

 

▣ sum(20,20) 둘 다 전달해주면 디폴트 매개변수 값이 아닌 내가 전달한 매개변수 값에 합이 나오게 됩니다. 

 

▣ 이번에도 매개변수를 한 개 더 추가하고 디폴트 매개변수를 2개만 선언하고 나머지 한 개는 디폴트 값을 지정하지 않겠습니다. 

그리고 sum(20) 함수에서 처럼 한 개만 값을 전달해보겠습니다. 

그럼 디폴트 매개변수가 지정되어 있지 않은 int n3에 20이 전달되는 게 아니라

처음에 int n에 값이 전달되기 때문에 오류가 나오게 됩니다.

컴파일러는 함수 호출에 나열된 값들을 앞에서부터 순서대로 함수의 매개변수에 전달하기 때문에 이런 오류가 생깁니다.

그렇기 때문에 디폴트 매개변수는 모두 끝 쪽에 몰려 선언하는 게 좋습니다. 

 

▣ 이런 식으로 디폴트 매개변수를 끝에 선언하면

매개변수 값을 순서대로 전달하기 때문에 sum(10)이 int n 매개변수에 전달되어 오류가 나지 않고 

합이 잘 나오는 걸 확인할 수 있습니다.

 

 

728x90
반응형

'[ CODING STUDY ] > 》C++ 공부' 카테고리의 다른 글

C++ 17장 [프렌드 함수]  (0) 2022.11.18
C++ 16장 [static 멤버 변수, 함수]  (2) 2022.11.16
C++ 14장 [복사생성자]  (0) 2022.11.11
C++ 13장 [참조변수]  (0) 2022.11.04
C++ 12장 [함수객체]  (1) 2022.11.03

댓글