산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 기본 매개변수(디폴트 인수): 작동 원리와 모범 사례

C++ 기본 매개변수(디폴트 인수)

C++에서 함수 매개변수에 기본값을 할당하는 방법과 실전 예제, 실무 가이드라인을 단계별로 학습하세요.

C++에서는 함수 매개변수에 기본값(Default Value)을 줄 수 있습니다. 호출 시 인수를 생략하면 컴파일러가 기본값을 대신 넣어주고, 인수를 주면 기본값은 무시됩니다.


기본 매개변수 작동 원리

C++ 기본 매개변수(디폴트 인수): 작동 원리와 모범 사례

다음 그림으로 설명:

  1. temp() – 두 매개변수 모두 기본값 사용
  2. temp(6) – 첫 번째 매개변수만 오버라이드, 두 번째는 기본값
  3. temp(6, -2.3) – 둘 다 인수 제공, 기본값 무시
  4. temp(3.4) – 실수를 int 매개변수에 전달 시도. 컴파일러가 3으로 잘라내며, 선언 순서대로 타입이 매칭됨을 보여줌

예제: 기본 매개변수 사용

#include <iostream>
using namespace std;
// 기본 인수를 가진 프로토타입
void display(char = '*', int = 3);
int main() {
    int count = 5;
    cout << "No argument passed: ";
    display(); // '*', 3 사용
    cout << "First argument passed: ";
    display('#'); // '#', 3 사용
    cout << "Both arguments passed: ";
    display('$', count); // '$', 5 사용
    return 0;
}
void display(char c, int count) {
    for(int i = 1; i <= count; ++i) {
        cout << c;
    }
    cout << endl;
}

실행 결과

No argument passed: ***
First argument passed: ###
Both arguments passed: $$$$$

동작 설명:

  1. display() – 기본값 c='*', count=3 사용
  2. display('#') – 첫 번째만 오버라이드, 두 번째는 기본값
  3. 두 인수 모두 제공 시 기본값 무시

함수 정의에 직접 기본값을 써도 되며 종종 더 명확합니다:

#include <iostream>
using namespace std;
void display(char c = '*', int count = 3) {
    for(int i = 1; i <= count; ++i) {
        cout << c;
    }
    cout << endl;
}
int main() {
    int count = 5;
    cout << "No argument passed: ";
    display();
    cout << "First argument passed: ";
    display('#');
    cout << "Both arguments passed: ";
    display('$', count);
    return 0;
}

핵심 주의사항

  1. 한 매개변수에 기본값이 주어진 뒤 **모든 후속 매개변수도 기본값을 가져야 합니다**. 예:
    // 잘못됨
    void add(int a, int b = 3, int c, int d);
    // 올바름
    void add(int a, int c, int b = 3, int d = 4);
  2. 기본값을 프로토타입이 아닌 정의에 쓸 경우, 정의가 **모든 호출보다 앞에 있어야** 합니다. 그렇지 않으면 컴파일 에러 발생.

C 언어

  1. C# 네임스페이스 마스터하기: 구성, 범위, 모범 사례
  2. C++ 연산자 마스터하기: 유형별 완벽 가이드와 실전 예제
  3. C++ 주석: 가독성 높고 유지보수하기 좋은 코드 작성법
  4. C++ 배열을 함수에 전달하는 방법: 실전 가이드
  5. C++ 클래스 템플릿 마스터: 실전 가이드
  6. C 프로그래밍 연산자 완벽 가이드
  7. C 사용자 정의 함수 4가지 검증된 패턴
  8. C 프로그래밍 입문: 시스템 프로그래밍의 기초 다지기
  9. C 함수 마스터: 선언, 정의, 호출, 인자 전달(값/참조), 재귀
  10. C 언어 가변 인자 마스터하기: 실전 가이드