如果这个问题被报告,我很抱歉,但我似乎无法在网上轻松找到解决方案。如果我覆盖 operator()() 这定义了什么行为?
问问题
122 次
1 回答
8
是operator()
函数调用操作符,即可以使用对应类型的对象作为函数对象。第二组括号包含参数列表(像往常一样),它是空的。例如:
struct foo {
int operator()() { return 17; };
};
int main() {
foo f;
return f(); // use object like a function
}
上面的例子只是展示了如何声明和调用操作符。实际使用可能会访问运算符中的成员变量。函数对象在标准 C++ 库中的许多地方都用作自定义点。使用对象而不是函数指针的优点是函数对象可以附加数据。
于 2012-12-13T05:06:33.630 回答