C++ 프로그래밍

C++의 디폴트 매개변수: 함수의 유연성을 높이는 기법

ROBL 2025. 2. 7.
728x90
반응형

C++에서 디폴트 매개변수는 함수 호출 시 인자를 생략할 수 있도록 해주는 기능입니다. 이를 통해 함수의 유연성을 높이고, 코드의 가독성을 향상시킬 수 있습니다. 이 글에서는 C++의 디폴트 매개변수의 개념, 사용법, 그리고 주의사항에 대해 살펴보겠습니다.

1. 디폴트 매개변수란?

디폴트 매개변수는 함수 선언 시 매개변수에 기본값을 지정하는 것입니다. 함수가 호출될 때 인자가 제공되지 않으면, 지정된 기본값이 사용됩니다. 이를 통해 함수의 호출을 간소화하고, 다양한 상황에 맞게 함수를 사용할 수 있습니다.

1.1 디폴트 매개변수 선언

디폴트 매개변수는 함수의 선언부에서 매개변수의 타입 뒤에 기본값을 지정하여 선언합니다. 다음은 디폴트 매개변수를 사용하는 예제입니다.

#include <iostream>
using namespace std;

void greet(string name = "Guest", int age = 18) {
    cout << "안녕하세요, " << name << "님! 당신의 나이는 " << age << "세입니다." << endl;
}

위의 코드에서 greet 함수는 두 개의 매개변수를 가지며, 각각 기본값을 설정하고 있습니다. name의 기본값은 "Guest", age의 기본값은 18입니다.

2. 디폴트 매개변수 사용 예

디폴트 매개변수를 사용하여 함수를 호출할 때, 인자를 생략할 수 있습니다.

int main() {
    greet(); // 기본값 사용
    greet("Alice"); // name만 지정
    greet("Bob", 25); // 두 매개변수 모두 지정
    return 0;
}

위의 코드에서 greet()는 기본값을 사용하여 호출되고, greet("Alice")name만 지정하며, greet("Bob", 25)는 두 매개변수 모두 지정합니다. 출력 결과는 다음과 같습니다.

안녕하세요, Guest님! 당신의 나이는 18세입니다.
안녕하세요, Alice님! 당신의 나이는 18세입니다.
안녕하세요, Bob님! 당신의 나이는 25세입니다.

3. 디폴트 매개변수의 주의사항

디폴트 매개변수를 사용할 때는 몇 가지 주의사항이 있습니다.

  • 선언 위치: 디폴트 매개변수는 함수의 선언부에서만 지정해야 하며, 정의부에서는 지정할 필요가 없습니다. 예를 들어, 다음과 같이 사용할 수 있습니다.
void greet(string name = "Guest", int age = 18); // 선언부에서 기본값 지정

void greet(string name, int age) { // 정의부에서는 기본값 지정하지 않음
    cout << "안녕하세요, " << name << "님! 당신의 나이는 " << age << "세입니다." << endl;
}
  • 순서: 디폴트 매개변수는 오른쪽에서 왼쪽으로 지정해야 합니다. 즉, 기본값이 없는 매개변수는 기본값이 있는 매개변수 뒤에 위치해야 합니다. 다음은 잘못된 예입니다.
void greet(int age = 18, string name); // 오류: 기본값이 있는 매개변수가 뒤에 위치
  • 중복 정의: 디폴트 매개변수를 가진 함수는 중복 정의할 수 없습니다. 즉, 동일한 함수 이름과 매개변수 목록을 가진 두 개의 함수가 있을 경우, 컴파일 오류가 발생합니다.

4. 결론

C++의 디폴트 매개변수는 함수의 유연성을 높이고, 코드의 가독성을 향상시키는 유용한 기능입니다. 이를 통해 다양한 상황에 맞게 함수를 호출할 수 있으며, 코드의 중복을 줄일 수 있습니다. 그러나 사용 시 주의사항을 잘 지켜야 합니다. 다음 포스팅에서는 C++의 함수 오버로딩에 대해 더 깊이 다루어 보겠습니다.

728x90
반응형

댓글

💲 추천 글