Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 기본 인수(Default Arguments) 개념과 활용법 총정리

C++의 기본 인수란 무엇인가?

이 튜토리얼에서는 C++에서 기본 인수(Default Arguments)가 어떻게 동작하는지 예제 프로그램을 통해 자세히 알아보겠습니다.

기본 인수란 함수를 호출하는 문장에서 해당 매개변수에 값을 전달하지 않을 경우, 함수가 자동으로 사용하도록 미리 지정해 둔 값입니다. 이를 활용하면 하나의 함수로 다양한 형태의 호출을 처리할 수 있어 코드의 유연성과 재사용성이 크게 향상됩니다.

기본 인수의 주요 특징

  • 매개변수 선언 시 = 기호를 사용하여 기본값을 지정합니다.
  • 기본 인수는 반드시 오른쪽(뒤쪽)부터 순서대로 지정해야 합니다.
  • 호출 시 값을 생략하면 기본값이 사용되고, 값을 전달하면 전달된 값이 우선 적용됩니다.

예제 코드

아래 예제는 네 개의 정수를 더하는 sum 함수에 마지막 두 매개변수 zw에 각각 기본값 0을 설정한 것입니다.

#include<iostream>
using namespace std;

// 기본 인수를 가진 함수 정의
int sum(int x, int y, int z = 0, int w = 0) {
    return (x + y + z + w);
}

int main() {
    cout << sum(10, 15) << endl;        // z, w 생략 → 기본값 0 사용
    cout << sum(10, 15, 25) << endl;    // w만 생략 → w는 기본값 0 사용
    cout << sum(10, 15, 25, 30) << endl; // 모든 값 전달
    return 0;
}

실행 결과

25
50
80

결과 분석

  • sum(10, 15): x=10, y=15만 전달되고 z와 w는 기본값 0으로 처리되어 10+15+0+0 = 25
  • sum(10, 15, 25): z에 25가 전달되고 w만 기본값 0으로 처리되어 10+15+25+0 = 50
  • sum(10, 15, 25, 30): 모든 인수가 전달되어 10+15+25+30 = 80

기본 인수 사용 시 주의사항

기본 인수를 사용할 때는 몇 가지 규칙을 반드시 지켜야 합니다.

  1. 오른쪽부터 연속적으로 지정: 기본값이 있는 매개변수 뒤에는 반드시 기본값이 있는 매개변수만 올 수 있습니다. 즉, int sum(int x, int y = 0, int z)처럼 중간에 기본값을 두는 것은 컴파일 오류입니다.
  2. 함수 선언과 정의 중복 지정 금지: 헤더 파일에 선언할 때 기본값을 지정했다면, 구현부에서는 다시 지정하지 않습니다.
  3. 함수 오버로딩과의 충돌 주의: 기본 인수를 사용한 함수와 유사한 시그니처의 오버로드 함수가 있다면 호출 시 모호성(ambiguity) 오류가 발생할 수 있습니다.

이처럼 기본 인수를 잘 활용하면 함수 오버로딩 없이도 다양한 호출 방식을 지원하는 유연한 함수를 만들 수 있습니다.