C++ Chapter 01. C언어 기반의 C++ 1. 


01-3 매개변수의 디폴트 값(Default Value)


* 매개변수에 설정하는 '디폴트 값'의 의미

// 기본적으로 설정되어 있는 값

// 매개변수에 디폴트 값이 설정되어 있으면, 선언된 매개변수의 수보다 적은 수의 인자전달이 가능하다.

// 그리고 전달되는 인자는 왼쪽에서부터 채워져 나가고, 부족분은 디폴트 값으로 채워진다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int Adder(int num1=1int num2=2) // 디폴트 값
{
    return num1+num2;
}
 
int main(void)
{
    std::cout<<Adder()<<std::endl; // 3
    std::cout<<Adder(5)<<std::endl; // (인자는 첫 번째 매개변수로 전달된다) // 7
    std::cout<<Adder(35)<<std::endl; // 8
    return 0;
}
cs



* 디폴트 값은 함수의 선언 부분에만 표현하면 됩니다.

// 함수의 원형을 별도로 선언하는 경우, 매개변수의 디폴트 값은 함수의 원형 선언에만 위치시켜야 한다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
int Adder(int num1=1int num2=2); //
 
int main(void)
{
    std::cout<<Adder()<<std::endl;
    std::cout<<Adder(5)<<std::endl;
    std::cout<<Adder(35)<<std::endl;
    return 0;
}
 
int Adder(int num1, int num2)
{
    return num1+num2;
}
cs



* 부분적 디폴트 값 설정

// 함수에 전달되는 인자가 왼쪽에서부터 오른쪽으로 채워지기 때문에

// 반드시 오른쪽 매개변수의 디폴트 값부터 채우는 형태로 정의해야 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
 
int BoxVolume(int length, int width=1int height=1); // 매개변수의 디폴트 값부터 채우는 형태로 정의해야 한다
 
int main()
{ // 함수애 전달되는 인자는 왼쪽부터 오른쪽으로 채워진다
    std::cout<<"[3, 3, 3] : "<<BoxVolume(333)<<std::endl; // 27 (3,3,3)
    std::cout<<"[5, 5, D] : "<<BoxVolume(55)<<std::endl; // 25 (5,5,1)
    std::cout<<"[7, D, D] : "<<BoxVolume(7)<<std::endl; // 7 (7,1,1)
//    std::cout<<"[D, D, D] : "<<BoxVolume()<<std::endl; // 컴파일 에러
    return 0;
}
 
int BoxVolume(int length, int width, int height)
{
    return length*width*height;
}
cs



Posted by 너래쟁이
: