我有一个类调用这个函数对象是如何工作的?
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
像
方法1:
func(fobj(1));
我想打印被打印的消息。
我总是在想,我需要做的是这样
方法2:
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()进行调用?
张贴在堆栈溢出的一个优点是惊人的回复:)。谢谢 – 2010-05-15 00:14:47