[완료] c++에서 operator() 의 호출 시점이 궁금합니다

park7837의 이미지

stl 사용하다 보면 find()나 find_if()를 사용할 때

class의 operator() 함수를 오버로딩해서 사용하던데요...

operator()는 언제 호출 되는건가요?

사용예 :

find_if(itBegin, itEnd, CWatch(1));
 
bool CWatch::opeartor()(CWatch& w)
{
   return(..........)
}

cdecl의 이미지

클래스 변수(인스턴스)를 함수 인터페이스처럼 사용할때 사용 합니다.

#include <iostream>
using namespace std;
 
class Add
{
public:
	int operator()(int a, int b)
	{
		return a + b;
	}
};
 
int Func(int a, int b)
{
	return a + b;
}
 
 
 
template <class T>
int AddFun(T t, int a, int b)
{
	return t(a, b);  // <-
}
 
 
int main()
{
	int nResult;
 
	Add ad;
	cout << ad(10, 20) << endl;  // <-
	cout << AddFun(ad, 10, 20) << endl;
	cout << AddFun(Add(), 10, 20) << endl;
	cout << AddFun(&Func, 10, 20) << endl;
 
	return 0;
 
}

--
cdecl

park7837의 이미지

답변 감사합니다.