가변 동작에 대해 별도의 클래스를 생성하여 함수와 관련된 로컬 데이터를 설명하고 클래스가 됨으로써 파생 될 수 있습니다. 함수 연산자 void operator()(......)
를 사용
는
class Callable {
public:
int m_Value;
Callable(int value) : m_Value(value)
{
}
void operator()(int val1, double val2 /* whatever makes sense */) {
}
};
우리는 함수처럼 보이는 유형의 변수는 호출 가능하게하는 방법을 만들 수 있습니다.
class Variable {
public:
Callable myFunction;
Variable(const Callable & howToCall, /* some more stuff */) :
myFunction(howToCall)
{ /* stuff */
}
void aFunction(int data, double value) {
myFunction(data, value);
}
};
aFunction
를 호출
myFunction
의 현재 값이 호출됩니다.
마지막으로 Variable
는
myFunction = Callable(/* new parameters */);
해당 함수를 매개 변수로 생성자에 전달할 수 없습니까? 구조 :: 기능에 std :: function! – Bathsheba
@ Bathsheba 매개 변수로 전달하지 않아도됩니다. – MoustacheSpy
나는 그렇지 않다는 것을 알고 있습니다. 그러나 당신은 * 할 수 있습니다. – Bathsheba