重载括号运算符有什么作用?
What does overloading the parentheses operator do?
我经常看到这个,我想知道它的作用/目的。
- 重载运算符((有什么作用?
- 为什么人们通常会超载这个操作员?
例
std::vector<double> operator()(int seed) const;
谢谢!
据我所知,函子和矩阵索引是最常见的用例。
矩阵索引
对于矩阵类,您可以执行以下操作:
Matrix3x3 A;
A(1,2) = 2;
在这种情况下使用括号而不是括号的主要原因是括号运算符只接受一个参数,而括号运算符接受多个参数。
函子
如果希望对象充当也可以存储信息的函数,则可以执行以下操作:
Accumulator accumulate;
for(int i=0; i<20; ++i)
accumulate(i);
std::cout << accumulate.sum << std::endl;
在C++中,您还经常会遇到比较器对象的函子,即使它们不存储信息。
相关文章:
- archive_read_support_filter_all() 有什么作用?
- 当我们为(;;) 写作时,它做了什么?for 循环中的双分号有什么作用?
- 这个递归函数有什么作用?运行时的复杂性是多少?
- DrawShadow 中的 Elevation 究竟有什么作用?
- 测试"stream >> char"有什么作用?
- "uFlags &= ~CHN_PANNING"命令有什么作用?
- GCC 的 -Wpsabi 选项究竟有什么作用?压制它意味着什么?
- int** a = new int*[n]();这个函数有什么作用?
- C++ 此函数调用之前的(void)有什么作用?
- i+=(i&-i) 有什么作用?它是便携式的吗?
- 这个size_t在 lambda 中有什么作用?C++代码
- 数组下标运算符 ([ ]) 对数组有什么作用?
- 结构之外的节点 * head 有什么作用?
- 重载括号运算符有什么作用?
- clang的"-Ofast"选项在实践中有什么作用,特别是对于与gcc的任何差异?
- std::make_unique_for_overwrite() 对 std::make_unique() 有什么作用?
- 运算符 delete[] 有什么作用?
- 下面的代码有什么作用?c++
- 这个陈述'p = I.ptr<uchar>(i);有什么作用?
- 这个嵌套的名称空间定义有什么作用