본문 바로가기
프로그래밍 언어/C++

[C++] 디폴트 파라미터(default parameter)

by 까망 하르방 2022. 8. 5.
반응형

디폴트 값이란

"기본적으로 설정되어 있는 값"을 의미한다.

 

 

함수 호출 시 파라미터(parameter)에 전달 될

아규먼트(argument)가 부족할 경우

대신해서 전달되는 값이기도 하다.

※ 아규먼트(argument, 인수) & 파라미터(parameter, 매개변수)

void sub(int a, int b, int c) // parameter
{
    …
}

sub(5); // too few argument

 

 

함수 원형을 별도로 선언하는 경우

매개변수 디폴트 값은 함수의 원형선언에만 위치시켜야 한다.

 

또한, 우측 파라미터부터 정의해야 한다.

전달되는 인자는 왼쪽에서부터 채워지고

부족분은 디폴트 값으로 채워진다.

// 부분 정의도 가능
void sub(int a, int b = 10, int c = 20);


// 중간 또는 좌측 파라미터만 디폴트 파라미터를 사용할 수 없다.
sub(, , 5); // error
sub(4, , 5); // error
sub(5); // default parameter 10, 20
sub(5, 10); // default parameter 20

 

 

자주 사용되는 아규먼트 값인 경우

디폴트 파라미터로 호출 편의 제공

// cin.ignore(1);
cin.ignore();

 

 

함수를 중복정의 할 경우

모호한 호출 오류에 유의해야 한다.

📌 💻 함수 오버로딩(Overloading)

void sub(int n = 5) { … }
void sub(void) { … }
 

💻 함수 오버로딩(Overloading)

함수 오버로딩 (overloading) • 동일한 이름의 함수명이 여러개 중복 정의되어 있는 형태 • 함수 파라미터(parameter) 자료형 혹은 개수가 다르다. • C 언어에서는 동일한 이름의 함수 정의를 허용

zoosso.tistory.com

 

 

예제 코드

#include <iostream>

using namespace std;

void DisplayDate(int day, int month, int year = 2022)
{
    cout << year << "/" << month << "/" << day << endl;
}

void main()
{
    DisplayDate(8, 5); // 2022/8/5
    DisplayDate(8, 5, 2019); // 2019/8/5
}
반응형

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

[C++] 네임스페이스(namespace) 활용  (0) 2022.08.09
[C++] 인라인(inline) 함수  (0) 2022.08.06
💻 함수 오버로딩(Overloading)  (0) 2022.08.03
[C++] [STL] next_permutation  (0) 2022.01.05
[C++] sort() 함수란?  (0) 2022.01.01

댓글