첫 번째 매개 변수를 두 번째 매개 변수의 기본값으로 사용할 수 있습니까?C++ default 다른 매개 변수의 매개 변수
int do_something(int a, int b = a + 1){
/* ... */
}
제 컴파일러가 마음에 들지 않아 아마도 허용되지 않습니다.
첫 번째 매개 변수를 두 번째 매개 변수의 기본값으로 사용할 수 있습니까?C++ default 다른 매개 변수의 매개 변수
int do_something(int a, int b = a + 1){
/* ... */
}
제 컴파일러가 마음에 들지 않아 아마도 허용되지 않습니다.
귀하의 질문에 이미 답변되었습니다 (허용되지 않음). 그러나 사용자가 몰랐을 경우를 대비해 함수 오버로드가 발생하는 경우가 거의 없습니다.
int do_something(int a, int b){
/* ... */
}
int do_something(int a) {
return do_something(a, a + 1);
}
허용되지 않습니다.
함수 인수의 평가 순서는 지정되지 않습니다. 결과적으로, 함수의 매개 변수는 평가되지 않더라도 기본 인수에서 사용되지 않습니다.
([dcl.fct.default] 발/9 C++ 14)
나는 UI이
int do_something(int a, int b){
b = a + 1;
/* ... */
}
할 것이되었지만, b 값은 후 변하지하지 않으면 함수가 실행을 완료합니다. 참조로 b를 전달하면됩니다. (int & b)
전달 된 것을 무시하고 덮어 쓰려한다면 매개 변수로 'b'를 사용하는 목적은 무엇입니까? –
함수가 다음과 같이 초기화되면 int do_something (int a, int & b) 변수 b 값을 동시에 변경하면서 하나의 값을 반환 할 수 있습니다 –
멤버 함수에 대한 비슷한 주제 : [?이 멤버 함수의 기본 매개 변수로 전달 될 수없는 이유] (http://stackoverflow.com/questions/11167062/why-this-can-not-be- 매개 변수로 멤버 함수 전달) – Nawaz