函数调用运算符的重载


#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;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值