#include <iostream>
#include <functional>
using namespace std;
#if 1
class st{
public:
//重载+运算符
void operator+(int i){
cout << "override +:\t"<< i << endl;
}
//重载()运算符(函数调用运算符, 与一般运算符的使用方式有所不同)
//重载了函数调用运算符, 我们可以像使用函数一样使用该类的对象
void operator()(int i){
cout << "override ():\t"<< i << endl;
}
}my_st;
#else
struct st{
void operator+(int i){
cout << "override +:\t"<< i << endl;
}
void operator()(int i){
cout << "override ():\t"<< i << endl;
}
}my_st;
#endif
int main(){
//调用+运算符
my_st.operator+(1);
my_st+(1);
my_st+1;
//调用()运算符
my_st.operator()(2);
my_st(2);
st()(2); //通过类名直接调用
int ttt = 0;
return 0;
}