打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C++中操作符重载(++和--)

重载自增或者自减操作符

//该类是一个指向数组的指针
class CheckedPtr
{
public:
 //构造函数:必须绑定一个数组对象
 CheckedPtr(int *b,int *e):beg(b),end(e),curr(b){}
 //重构前自增操作符
 CheckedPtr& operator++();
 //重构前自减运算符
 CheckedPtr& operator--();
 //重载后自增运算符:通过调用参数与前自增运算符区别开来
 const CheckedPtr operator++(int);
  private:
      int *beg;
      int *end;
      int *curr;
};

//前自增和前自减

CheckedPtr& CheckedPtr::operator++()
{
    if(curr == end)
          throw out_of_range("increment past the end of CheckedPtr");
   ++curr;
   return *this;
}

CheckedPtr& CheckedPtr::operator--()
{
   if(curr == beg)
          throw out_of_range("decrement past the beginning of CheckedPtr");
   --curr;
   return *this;
}

//后自增

CheckedPtr  CheckedPtr::operator++(int)
{
 //保存当前值
 CheckedPtr ret=*this;
 //调用前自增来实现后自增
 ++(*this);
 //返回当前值
 return ret;
}

//应用重载后的操作符

CheckedPtr a,b,c;

b=++a;//使用的是不带参数的操作符++重载函数

c=a++;//使用的是带int参数的操作符++重载函数

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
operator==.cpp
C++中复制构造函数与重载赋值操作符总结 | 果冻想
C++ operator关键字(重载操作符)
C++运算符重载(2)
operator
熬夜爆肝万字C#基础入门大总结【建议收藏】
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服