我有一堂课
class fobj{
public:
fobj(int i):id(i) {}
void operator()()
{
std::cout<<"Prints"<<std::endl;
}
private:
int id;
};
template<typename T>
void func(T type)
{
type();
}
如果我调用func
喜欢
方法一:
func(fobj(1));
我要打印的消息已打印。
我一直在想我需要做一些类似的事情
方法二:
fobj Iobj(1); // create an instance of the fobj class
func(Iobj); // call func by passing Iobj(which is a function object)
方法 1 是如何工作的?我的意思是究竟会发生什么?
以及如何调用 fobj 类中的 operator() ?