본문 바로가기
프로그래밍/C++

디폴트 매개변수

by 리뷰하는 (게임)프로그래머_리프TV 2010. 3. 15.




이것도 뭐 특별한거 없다.

말 그대로 인자값을 넣어주지 않아도 자동으로 변수의 값을 잡아 주는 것인데,

간단한 주의점과 사용법은 예제를 참고하자.

함수 오버로딩시에 주의점.

#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