반응형
함수 선언에서 함수의 매개변수에 초기값을 정하고, 함수 호출에서 매개변수를 전달하지 않았을 경우 초기값으로 함수의 인수 값을 설정해줍니다.
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 |