我有一個類調用這個函數對象是如何工作的?
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