我最近发现在 C++ 中你可以重载“函数调用”运算符,这是一种奇怪的方式,你必须写两对括号才能这样做:
class A {
int n;
public:
void operator ()() const;
};
然后这样使用:
A a;
a();
这在什么时候有用?
最佳答案
这可用于创建 "functors" , 像函数一样工作的对象:
class Multiplier {
public:
Multiplier(int m): multiplier(m) {}
int operator()(int x) { return multiplier * x; }
private:
int multiplier;
};
Multiplier m(5);
cout << m(4) << endl;
以上打印20
。上面链接的维基百科文章提供了更多实质性示例。
关于c++ - 重载 "function call"运算符有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42060270/