c++ - operator()() 定义了什么?

标签 c++ operators operator-overloading

如果这个问题被举报,我很抱歉,但我似乎无法轻松地在线找到解决方案。如果我覆盖 operator()() 这定义了什么行为?

最佳答案

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

struct foo {
    int operator()() { return 17; };
};

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

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

关于c++ - operator()() 定义了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13853289/

相关文章:

c++ - ->* 运算符到底是什么?

c++ - 在一个对象上运行,运算符用索引重载 ()

c++ - 为什么STL中List的迭代器使用的是(*node).data而不是node->data?

c++ - 如果模板参数确实如此,则仅重载运算符

c++ - 告诉 gdb 跳过标准文件

php - PHP字符串索引数组如何在C++中高效实现

c++ - QTimer 不调用超时槽

Java : Operators and Typecasting

c++ - 引用静态数据成员

c++ - operator << 对象 vector 的重载