안녕하세요 판타지코딩입니다!
오늘은 C++의 디폴트 매개 변수에 대해서 알아보겠습니다!
1. 디폴트 매개 변수가 무엇일까?
함수를 생성할 때에는 매개 변수를 생성해서 함수 내에서 활용할 값을 전달합니다. 예를 들어 int형 변수 num을 생성하고 num값으로 3을 주면 해당 함수 내에서는 num값인 3을 갖고 코드를 수행할 것입니다.
int func(int num)
{
int result = num;
return result;
}
func 함수에 num값으로 3을 주면 result에 3을 저장하고 3을 return합니다. 그런데 함수를 호출할 때 func(); 이렇게 매개 변수를 아무것도 넣어주지 않으면 어떨까요?
func(10);
func();
첫 번째 함수 호출은 10을 result에 저장하고 반환하지만, 두 번째 함수 호출은 컴파일 에러가 발생합니다. 인자로 int형 데이터를 넣어 줘야 하는데, 아무런 값도 넣지 않았기 때문입니다.
그런데 디폴트 매개 변수를 선언하면 위처럼 아무런 값도 넣지 않아도 컴파일 에러가 발생하지 않을 수 있습니다.
int func(int num = 3)
{
int result = num;
return result;
}
func 함수를 다시 생성해 보았습니다. 인자로 int형 변수 num을 받도록 하고, num에 3을 저장했습니다. 이 함수는 함수 호출시 다른 값을 넣어줘도 되고, 값을 넣지 않아도 됩니다!
func(10);
func();
첫 번째 함수는 10을 저장하고 반환합니다. 그리고 두 번째 함수는 3을 반환합니다. 위에서는 func(); 라고 호출하면 인자가 없기 때문에 컴파일 에러가 발생하지만, 이 코드에서는 정상적으로 작동이 됩니다. 그 이유는 인자로 생성한 int num에 3을 저장했기 때문에, 이것이 바로 디폴트 매개 변수가 됩니다. 그러므로 함수 호출시 인자를 넣지 않으면 자동으로 num에 3을 저장하여 코드를 실행합니다.
그럼 오늘은 디폴트 매개 변수에 대해서 공부해 보았습니다.
감사합니다!
'C++' 카테고리의 다른 글
C++ 깊은 복사와 복사 생성자 / 디폴트 복사 생성자 (0) | 2023.02.26 |
---|---|
C++ 얕은 복사와 복사 생성자 (0) | 2023.02.25 |
C++ 객체 배열 공부하기 / 여러 개의 객체를 한 번에 생성하기 (0) | 2023.02.22 |
C++ 큐(queue) 공부하기 / First In First Out (0) | 2023.02.21 |
C++ 오버로딩 (overloading) 공부하기! (0) | 2023.02.15 |