최상단 광고

2012년 4월 16일 월요일

[C++강좌] - 1-3.디폴트 매개변수

비록 짧지만 그래도 오늘로써 3번째 강좌, 5번째 글이군요!!
왠지 오늘 1단원은 다 끝낼수 있을 것 같아요 ㅋㅋ;;
저도 도움이 된다면야 열심히 합니다!

*이 강좌는 C언어를 끝냈다는 가정하에 실시합니다.

 ┌───────────────┐
---앞으로의 목차---
3. 디폴트 매개 변수
4. 인-라인(inline)함수
5. namespace에 대해
└───────────────┘

<지난 강좌를 살펴보고 와주세요 !! : http://blog.naver.com/owndks98o/120155687323 >

1-3. 디폴트(Default) 매개변수

이전강(1-2) 에서는 함수 오버로딩에 대해서 설명하였습니다.
함수 오버로딩을 통해, C++에서의 함수의 강력한 기능을 엿볼수 있었습니다.
하지만 C++에서의 함수는 이게 다가 아니라는 사실! 알고 계신가요?
모르시다면! 같이 알아보죠!!

디폴트(Default)란 컴퓨터공학에서는 "기본적인"이란 의미를 가집니다.
그렇다면 함수에서의 디폴트 매개변수란 무엇일까요?

바로,
"인자를 전달하지 않으면 기본적으로 이 값을 전달하겠다"
라고 해주는 것을 디폴트 매개변수라고 합니다.

/*
DefaultParameter.cpp
*/

#include

void func(int a=0){
std::cout<
}

int main(){
func();
func(30);
return 0;
}

위 코드는 디폴트 매개변수의 예를 보여주고 있습니다.
첫번째 함수 호출처럼, 아무런 인자를 전달하지 않을경우 인자로 0이 전달된 것으로 간주합니다.
결과는 0과 30이 출력되겠군요.

위에서는 아래와 같은 것이 성립합니다.

func()==func(0)

즉, 디폴트매개변수를 이용하면, 위와 같은 2가지의 방식을 동일하게 사용할수 있습니다.

그렇다면 더욱 많은 인자를 가지고 있는 디폴트 매개변수의 예를 살펴보죠.

/*
DefaultParameter2.cpp
*/

#include

int func(int a=1, int b=2, int c=3){
return a+b+c;
}

int main(){
std::cout<
std::cout<
std::cout<
std::cout<
return 0;
}

마치 함수오버로딩을 보는 것 같은 느낌입니다 :D
위 프로그램은 6 15 33 60 으로 출력되겠군요!

지금껏 디폴트 매개변수를 보면서 함수오버로딩을 많이 떠올리셨을 것입니다.
그럼, 함수오버로딩과 디폴트매개변수가 섞인다면?!?!

#include

int func(int a=10){
return a;
}

int func(){
return 10;
}

int main(){
std::cout<
return 0;
}

안타깝게도 위와 같은 코드는 에러를 일으킵니다.
main함수를 보세요! 과연 무엇을 가르키는걸까요? 저도 알수 없군요 하핫;;

이번시간에는 정말로 쓰임이 많은 디폴트(Default) 매개변수를 알아봤습니다!

그럼 다음강(1-4)에서는 인-라인 함수를 알아보죠!

댓글 없음: