Jos*_*ias 5 c++ operator-overloading operators
如果这个问题得到报道,我很抱歉,但我似乎无法在网上找到解决方案.如果我覆盖operator()()这定义了什么行为?
的operator()是函数调用操作符,即,可以使用相应类型的一个对象作为功能对象.第二组括号包含参数列表(像往常一样),它是空的.例如:
struct foo {
int operator()() { return 17; };
};
int main() {
foo f;
return f(); // use object like a function
}
Run Code Online (Sandbox Code Playgroud)
上面的例子只显示了如何声明和调用运算符.实际使用可能会访问运算符中的成员变量.函数对象在标准C++库中的许多位置用作自定义点.使用对象而不是函数指针的优点是函数对象可以附加数据.