Programming/C++

[C++] 디폴트 매개변수

Jubil 2018. 1. 22. 02:33
반응형

함수 선언에서 함수의 매개변수에 초기값을 정하고, 함수 호출에서 매개변수를 전달하지 않았을 경우 초기값으로 함수의 인수 값을 설정해줍니다.


1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
using namespace std;
 
void func(int a);
 
int main(){
    func();
}
 
void func(int a) {
    cout << "a : " << a << endl;
}
cs


이렇게 func()의 매개변수를 전달하지 않을 경우 컴파일 에러가 나게 됩니다.

* error C2660: 'func': 함수는 0개의 매개 변수를 사용하지 않습니다.



하지만 함수 선언 부분에서 a의 초기값을 설정해준다면, func에 인자를 전달해줬을 경우에는 그 인자가, 아닐 경우 초기값이 들어가게 됩니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
void func(int a = 0);
 
int main(){
    func();
    func(100);
}
 
void func(int a) {
    cout << "a : " << a << endl;
}
cs


보시면 func 함수 선언 부분에 int a = 0으로 초기값을 줬습니다.


func();

func(100);


모두 error가 나지 않습니다.





결과는 예상대로 인자를 주지 않았을 때, a는 0입니다.

인자를 전달했을 때는 a가 100입니다.

반응형

'Programming > C++' 카테고리의 다른 글

[C++] 클래스와 객체  (2) 2018.01.22
[C++] 함수 오버로딩  (0) 2018.01.22
[C++] 함수  (0) 2018.01.21
[C++] 구조체  (0) 2018.01.21
[C++] 동적 할당  (0) 2018.01.21