运算符()()定义了什么
What does operator()() define?
如果这个问题被报告,我很抱歉,但我似乎无法在网上轻松找到解决方案。如果我覆盖运算符()(),这将定义什么行为?
operator()
是函数调用运算符,即可以使用相应类型的对象作为函数对象。第二组括号包含参数列表(像往常一样),该列表为空。例如:
struct foo {
int operator()() { return 17; };
};
int main() {
foo f;
return f(); // use object like a function
}
上面的示例仅显示了如何声明和调用运算符。实际用途可能会访问运算符中的成员变量。函数对象在标准C++库中的许多位置用作自定义点。使用对象而不是函数指针的优点是函数对象可以附加数据。
相关文章:
- #定义c-预处理器常量..我做错了什么
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 有没有什么方法可以使用一个函数中定义的常量变量,也可以由c++中同一程序中的其他函数使用
- 在C/C++中将变量名定义为__00000001有什么好处吗
- 在 ubuntu3 上C++ goto 定义有什么解决方案吗16.04?
- C++中"dependent name"的定义是什么?
- 什么是自定义比较器以及如何在 C++ 的排序函数中使用它?
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 这个失败的测试是将零添加到空指针未定义的行为、编译器错误还是其他什么?
- 在模板类之外定义友元函数的正确方法是什么?
- 在自定义 std::vector-like 容器中处理指针和非指针模板类型的最佳方法是什么?
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 自定义数据结构的优点是什么?
- [未定义提及'SetLastError@4']是什么意思?
- 在C++中,创建'n'数量的对象的推荐方法是什么,其中n是用户定义的。我该怎么做?
- 为了从自定义目录使用 CMake,我需要做什么?
- 此模板定义在 C++ 中是什么意思?
- 根据 c++ 标准在该宏定义中推送/弹出宏时的行为是什么
- 有什么方法可以在标头中定义和声明 extern 对象吗?
- 我可以在可移植库中使用什么定义来判断编译器是否Microsoft?