이것도 뭐 특별한거 없다.
말 그대로 인자값을 넣어주지 않아도 자동으로 변수의 값을 잡아 주는 것인데,
간단한 주의점과 사용법은 예제를 참고하자.
함수 오버로딩시에 주의점.
#include <iostream>
void temp(int a=10); // 문제 없다.
void temp(int a, int b = 10 ); // 함수 오버로딩 같지만
// 왠지 문제 있어 보이지 않는가?
void main()
{
temp(10); // 난 누구한테 가야 하나요?
}
이번엔 또다른 주의점
#include <iostream>
void temp(int a=10, char b='c'); // 문제 없다.
void temp(int a=10, int b ); // 얼핏 보면 문제 없어 보일지도 모르나
void main()
{
temp(10); // 10이라는 숫자는 a도, b도 갈 수 없다.
}
마지막으로 선언과 정의시 주의점
#include <iostream>
int temp(int a=10) // 선언과 정의를 동시에 할 경우엔 문제 없다.
{
return 0;
}
int wrong_temp(int a=10, int b=10 ); // 선언과 정의를 따로 해줄 경우
int right_temp(int a, int b=10 ); // 선언과 정의를 따로 해줄 경우
void main()
{
}
int wrong_temp(int a=10, int b=10 ) // 디폴트 매개변수 선언은 함수 선언부에 1번이면 족하다.
{
return 0;
}
int right_temp(int a, int b ) // 문제없다.
{
return 0;
}
'프로그래밍 > C++' 카테고리의 다른 글
namespace(이름 공간) (0) | 2010.03.15 |
---|---|
inline 함수 (0) | 2010.03.15 |
함수 오버로딩 (overloading) (0) | 2010.03.15 |
putback(), peek() (0) | 2010.03.15 |
cout, cin, endl (0) | 2010.03.15 |