1
몇 가지 방법으로 내 함수에 내 초기화 된 함수 객체를 전달하고 싶습니다.함수 객체를 함수 인자로 전달하기
나는 "for_each"와 함께 자신의 기능을 가진 예제를 찾지 못했지만 같은 방식으로 작동해야한다는 것을 이해합니다.
void f(int& n, void (*g)(int& m)){ g(n);};
class TEST{
public:
int init=0;
TEST(int _init):init(_init){}
void operator() (int& m) {m+=init;}
};
int main(int argc, char *argv[])
{
int k, m;
cin >> k >> m;
TEST mytest(m); // OK, creates object with initialization
mytest(m); // OK, using initialized object's "operator()"
f(k,mytest); // error: cannot convert 'TEST' to
// 'void (*)(int&)' for argument '2'to
// 'void f(int&, void (*)(int&))'
f(k,TEST(m)); // error: cannot convert 'TEST' to
// 'void (*)(int&)' for argument '2'to
// 'void f(int&, void (*)(int&))'
return 0;
}
'템플릿 공극 F (INT 및 N, F의 g) {g (N)}' –
... 함수의 목적은 넓은 용어이고, 일반적으로 A * 함수로 전환되지 않기 때문에 바늘*. – StoryTeller
mytest는 int가 아니며 & mytest()를 시도했습니다. –