2010-08-09 2 views

답변

7

, 당신은 그것을 감지 할 수있다 :

void foo(Bar bar, int test = -1) { //assuming -1 is invalid 
    if(test == -1) test = bar.testInt; 

    //... 
} 

그렇지 않다면, 당신은 항상 오버로드 기능을 사용할 수 있습니다 기능

void foo(Bar bar, int test) { 
    //... 
} 

void foo(Bar bar) { 
    foo(bar, bar.testInt); 
} 
+4

일을 오버로드, 기본 매개 변수는 항상 대답이 아닙니다. – meagar

+0

추가 질문으로,이 두 가지 중에서 '올바른'대답이 있습니까? 좀 더 읽을 수있는 것을 찾을 수 있을지 모르겠다. (또한 btw Mike, 나는 당신이 마지막 두 코드 세그먼트에서'// 가정 -1은 유효하지 않다 '라고 생각하지 않는다.) – Stephen

+1

Derp, that 's 내가 복사하고 붙이기 위해 얻는 것! 어쨌든, 아마도 함수 오버로딩과 함께 갈 것입니다. 그러나, 나는 또한 객체의 사본을 너무 많이 만드는 것을 피하기 위해'bar '를 참조로 바꿀 것입니다. –

관련 문제