函数调用运算符重载¶
语法¶
函数调用运算符operator()
是一个二元运算符,语法如下:
primary-expression ( expression-list )
primary-expression
是第一个操作数expression-list
是第二个操作数,有可能为空的参数列表
注意 1:函数调用运算符重载必须是非静态成员函数
注意 2:函数调用运算符是应用于对象,而不是函数
示例¶
定义类Point
,重定义函数调用运算符
class Point {
public:
Point() { _x = _y = 0; }
Point &operator()(int dx, int dy) {
_x += dx;
_y += dy;
return *this;
}
inline void print() {
cout << "_x = " << _x << " _y = " << _y << endl;
}
private:
int _x, _y;
};
int main() {
Point pt;
pt.print();
pt(3, 2);
pt.print();
}