2009. 11. 19. 13:35
// c++ 함수는 디폴트 파라미터를 지정하는 것이 가능하다.
// 파라키터의 값을 전달하지 않을 경우 디폴트 값이 적용된다.
// 디폴트 파라미터를 지정할때는 반드시 마지막 파라미터 부터 차례대로 적용해야 한다.

void foo(int a,  int b,   int c=0);       // OK
void foo(int a=0, int b=0,  int c=0);   // OK

void foo(int a=0, int b,   int c=0);    // OK
void foo(int a=0, int b,   int c);       // OK


// 함수를 선언과 구현부로 나누어 작성할 경우 디폴트 파라미터는 선언 또는 구현중 1곳에만 지정해야 한다.
// 일반적으로 선언에 지정한다.
 void foo(int a = 0); // declaration
void foo(int a = 0)   // definition, error redefiniton
{
}

// 디폴트 바라미터는 다음의 2가지에 유의 해야 한다.
// 1. 마지막 파라미터(오른쪽)부터 차례대로 지정해야 한다.
// 2. 함수 선언부와 구현부중 1곳에만 지정한다.(반드시 선언에 지정한다.)

 #include <iostream>
using namespace std;

void foo(int a, int b=1, int c=2, int d=3);

void main()
{
    foo(10,20,30,40);
    foo(10,20,30);
    foo(10,20);  
    foo(10);
}

void foo( int a,
     int b, /*=1*/
     int c, /*=2*/
     int d, /*=3*/
{
    cout << "a:" << a << "\t";
    cout << "b:" << b << "\t";
    cout << "c:" << c << "\t";
    cout << "d:" << d << "\t";
}




'Programming > C++' 카테고리의 다른 글

Namespace  (0) 2010.07.12
* Inline Function  (0) 2009.11.20
* Overloading 된 함수 찾는 순서  (0) 2009.11.19
* Function Overloding  (0) 2009.11.19
* Return By Reference  (0) 2009.11.18
Posted by 어북어위크