반응형

0. 시작하기

 

1. 매개변수의 기본값 ( CPP/F_DefaultValue.cpp )

C++ 역시도 다른 언어와 마찬가지로 매개변수의 기본값을 설정할 수 있습니다.

방법 역시도 동일합니다.

 

아래는 이전에 다루었던 '함수 오버로딩'에 매개변수 기본값을 정해준 코드입니다.

 

#include <iostream>

int func(int x=10){  // 1번 함수
    return x;
}

int func(int x, int y, int z=10){  // 2번 함수
    return x+y+z;
}

int main(void){
    std::cout << func() << std::endl;  // 1번 함수 수행
    std::cout << func(10) << std::endl;  // 1번 함수 수행
    std::cout << func(10, 20) << std::endl;  // 2번 함수 수행
    std::cout << func(10, 20, 30) << std::endl;  // 2번 함수 수행


    return 0;
}

 

실행결과

 

여기서 주의할 부분은 '매개변수 기본값'을 정해줌에 따라서 '함수 오버로딩'의 조건인 '인자에 의한 구분가능성'이 유지되어야 한다는 것입니다.

 

만약 위의 함수에 아래와 같은 함수가 함께있다면 [구분가능성]이 사라져 애러가 발생합니다.

 

int func(int x=10){  // 1번 함수
    return x;
}

int func(int x, int y, int z=10){  // 2번 함수
    return x+y+z;
}

int func(int x, int y=10){  // 오버로딩 규칭 위반
    return x+y;
}

 

 

함수 선언 위치에 따른 기본값 설정 (

코드를 작성할 때, 보통 [함수 선언 -> 메인함수 -> 함수 정의]의 순서로 작성하는 경우가 많습니다.

 

함수의 정의부분이 너무 길게되면 자주 사용되는 메인함수가 최하단으로 밀려나 불편하기 때문이죠.

 

이와 같은경우 매개변수의 기본값 설정은 [함수 선언]부분에 작성합니다.

 

예제 코드를 봐주세요.

 

#include <iostream>

int func(int x=10, int y=10);  // 함수 선언시에 기본값 설정

int main(void){
    std::cout << func() << std::endl;

    return 0;
}

int func(int x, int y){
    return x+y;
}

 

실행결과

 

반응형

+ Recent posts