함수를 정의할 때 인수의 디폴트 값을 정해줄 수 있습니다.
void Func(int a = 2) {//디폴트 인수 a의 값이 2인 함수
}
Func(4);//인수를 4를 전달해서 a는 4가 됩니다.
Func();//인수를 생략해서 디폴트 인수인 2가 됩니다.
인수를 여러 개 넣고 싶을 때 어떤 건 디폴트 인수로 하고 어떤 건 그냥 인수로 할 수도 있는데, 이는 규칙이 있습니다. 반드시 디폴트 인수 중의 하나라도 그냥 인수들의 앞에 오면 안 됩니다.
void Func(int a = 2, int b) {
}
Func(3);//a에 3이 전달될지, a가 디폴트 인수니까 b에 3이 전달될지 몰라 오류가 납니다.
void Func(int a, int b = 2) {//이렇게 써야 합니다.
}
Func(3);//a에 3이 전달 되고 b는 디폴트 인수인 2가 전달 됩니다.
그리고 함수를 선언하고 정의할 때 디폴트 인수를 선언 정의 둘 다 표시하면 중복되어 오류가 납니다. 함수를 선언 및 정의할 경우에는 선언 부분에만 디폴트 인수를 표시해주어야 합니다.
void Func(int a = 2);
void Func(int a = 2) {//디폴트 인수 중복 오류
}
void Func(int a) {//이렇게 써야 합니다.
}
함수 선언 부분에서 디폴트 인수를 지정할 때 인수 이름을 생략할 경우 이렇게 할 수도 있습니다.
void Func(int = 2);
void Func(int a) {
}
'C, C++' 카테고리의 다른 글
포인터 배열과 배열 포인터 (0) | 2019.12.08 |
---|---|
가변 인수 함수 (0) | 2019.12.07 |
함수 오버로딩 (0) | 2019.12.03 |
변수, 함수 선언과 정의 (0) | 2019.12.03 |
변수 종류 (0) | 2019.12.03 |