#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;
}
클래스
클래스 변수(인스턴스)를 함수 인터페이스처럼 사용할때 사용 합니다.
#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
답변 감사합니다.
답변 감사합니다.
댓글 달기