运算符()()定义了什么

What does operator()() define?

本文关键字:什么 定义 运算符      更新时间:2023-10-16

如果这个问题被报告,我很抱歉,但我似乎无法在网上轻松找到解决方案。如果我覆盖运算符()(),这将定义什么行为?

operator()是函数调用运算符,即可以使用相应类型的对象作为函数对象。第二组括号包含参数列表(像往常一样),该列表为空。例如:

struct foo {
    int operator()() { return 17; };
};
int main() {
    foo f;
    return f(); // use object like a function
}

上面的示例仅显示了如何声明和调用运算符。实际用途可能会访问运算符中的成员变量。函数对象在标准C++库中的许多位置用作自定义点。使用对象而不是函数指针的优点是函数对象可以附加数据。

相关文章: