Ch 09. 함수 - 06. 디폴트 매개변수
2025. 4. 18. 10:12ㆍProgramming Language/C++
반응형
1. 디폴트 매개변수(default parameter)
함수의 디폴트 매개변수(default parameter)란 함수 호출 시 인자를 생략해도 자동으로 들어갈 기본값을 미리 지정해주는 기능이다
2. 기본 문법
void func(int a=기본값, int b=기본값, int c=기본값) {
....
}
과 같이 사용하고 이렇게 정의했다면 호출하는 쪽에서는
func() // 사용가능
func(1) // 사용가능
func(1, 2) // 사용가능
func(1, 2, 3) // 사용가능
이렇게 어떤 방식으로든 사용이 가능하다
디폴트 매개변수의 사용 규칙은 보통 함수 선언부에만 기본값 지정한다.
void func(int = 20, int = 30, int = 40); // 함수의 선언부 - 이쪽에 보통 디폴트 매개변수를 선언
int main() {
....
}
void func(int a, int b, int c) {
....
}
그리고 디폴트 매개변수는 오른쪽 부터 순서대로만 선언이 가능하다.
void func(int, int, int = 40); // 디폴트 매개변수 선언가능
void func(int, int = 30, int = 40); // 디폴트 매개변수 선언가능
void func(int = 20 int = 30, int = 40); // 디폴트 매개변수 선언가능
void func(int = 20 int, int = 40); // ❌순서에 맞지 않게 선언했기에 디폴트 매개변수 선언 불가능
void func(int = 20 int, int); // ❌순서에 맞지 않게 선언했기에 디폴트 매개변수 선언 불가능
3. 프로토 타입에 따라 다르게 선언이 가능한 디폴트 매개변수
프로그래밍을 하면 함수를 여러개로 분리해서 사용을 할 수 가 있는데
이렇게 파일이 하나 존재하고
이렇게 파일이 하나 따로 존재한다고 할때 각 파일에 서로 다른 디폴트 매개변수를 넣는다면
프로토 타입, 함수의 선언에 따라서 함수의 기본 값의 설정을 각각 할 수 도 있게 된다.
4. 기본 타입이 아닌 다양한 타입에 대해 설정이 가능한 디폴트 파라미터
이렇게 구조체에 대해서도 디폴트 파라미터를 선언할 수 있고 전역 변수로 구조체를 하나 만들어서 넣어주는 디폴트 파라미터 또한 가능하다.
만약 포인터를 사용한다면
이렇게 디폴트 매개변수로 nullptr을 전달해서 사용도 가능하다.
반응형
'Programming Language > C++' 카테고리의 다른 글
C++의 포인터 배열에 대해서 (0) | 2025.04.18 |
---|---|
Ch 09. 함수 - 07. 함수 오버로딩 (0) | 2025.04.18 |
Ch 09. 함수 - 05. 참조로 전달 (0) | 2025.04.18 |
Ch 09. 함수 - 04. 주소로 전달 (0) | 2025.04.18 |
Ch 09. 함수 - 03. 값으로 전달 (0) | 2025.04.18 |