값으로 전달 된 여러 매개 변수로 정의 된 함수가 있습니다. 매개 변수에 대한 함수와 입력은 모두 공통 전역 변수에 따라 다릅니다. 나 자신의 범위 내에서 실행하는 동안 매개 변수의 입력을 재평가하기 위해 함수를 얻는 방법이 필요하다. 다음은 간단한 코드 버전입니다.C++ 업데이트 함수 인수
#include <iostream>
using namespace std;
int Sum(int arg1, int from, int to);
int i;
int func();
int main(int argc, char *argv[])
{
Sum(func(), 0, 10);
return 0;
}
int Sum(int arg1, int from, int to)
{
int out = 0;
for (i = from; i <= to; i++)
{
out += arg1;
cout << "arg1 = " << arg1 << ", out = " << out << endl;
}
return out;
}
int func()
{
return i;
}
일부 하이라이트 :
*이 여기에 기능 합계에 매개 변수 ARG1의 입력 값을 업데이트하는 것을 시도하고있다().
보통 I 참조로 파라미터를 정의함으로써이 문제를 해결하는 것이다 (이 경우, 파라미터는 함수 요컨대 ARG1이다).
그러나이 함수를 사용하는 방법은 일반적으로 여러 입력 값을 인라인으로 결합하기 때문에 값으로 전달해야합니다.
합계에 대한 입력과 함께 이름없는 임시 함수를 정의 할 수있는 방법이 있습니까? 그렇다면 참조로 매개 변수를 전달하고 내 문제를 해결할 수 있습니다. 또는이 작품을 만드는 방법에 대한 다른 아이디어?
감사합니다.
을 :
당신이 당신의 프로그램으로 만들 필요가있는 유일한 다른 변화가
는Sum
에 대한 프로토 타입은 위의 기능에 맞게, 다음과 같이Sum
를 호출한다. 여러 가지 표현식을 합계 입력으로 사용할 수 있습니다. 예 : Sum (func(), 0, 10) 대신 Sum (func() * i, 0, 10)을 사용합니다. 내가 올바르게 이해한다면,이 접근법은 효과가 없을 것입니다. 여러 표현식을 하나의 함수로 묶는 방법을 찾아야합니다. 옳은? –그보다 더 멋지게하려면 C++ 11 람다 식을 조사해야합니다. 그들은 당신에게 내가 생각하는 유연성을 제공합니다. –