我经常看到这种情况,我想知道它的作用/目的。
示例
std::vector<double> operator()(int seed) const;
谢谢!
答案 0 :(得分:6)
Functors and matrix indexing是最常见的用例。
矩阵索引
对于矩阵类,您可以执行以下操作:
Matrix3x3 A;
A(1,2) = 2;
在这种情况下,使用括号而不是括号的主要原因是括号运算符仅接受一个参数,而括号运算符则接受多个参数。
功能键
如果希望对象充当还可以存储信息的功能,则可以执行以下操作:
Accumulator accumulate;
for(int i=0; i<20; ++i)
accumulate(i);
std::cout << accumulate.sum << std::endl;
在C ++中,comparator objects的函子也经常遇到,即使它们不存储信息。