14.4递增和递减运算符

递增和递减运算符

定义递增和递减运算符的准则:

①定义递增和递减运算符的类应该同时定义前置和后置版本。

②递增和递减运算符应该被定义成成员函数

③前置运算符应该返回递增或递减后对象的引用,后置运算符应该返回对象的原值(递增或递减前的值)而非引用。

④区分前置和后置运算符:

  • 前置版本与正常的运算符重载形式类似。
  • 后置版本参数列表接受不被使用的int类型形参,这个形参唯一的作用就是区分前置和后置类型版本。

例如:开发一批苹果手机,每个有一个编号,每个手机除了编号外其余所有参数一致。可以为其定义递增或递减运算符改变编号。

class Phone {
public:
    Phone():_num(0), _price(6000){}
    Phone& operator++() {
        ++_num;
        return *this;
    }
    Phone operator++(int) {
        Phone ret = *this;
        ++_num;
        return ret;
    }
    int getNum() {
        return _num;
    }
private:
    int _num;        //编号
    double _price;   //售价
};
int main() {
    Phone p1;
    ++p1;
    cout << p1.getNum() << endl;
    cout << (p1++).getNum() << endl;
    cout << p1.getNum() << endl;
}
//输出结果为:
1
2
2
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值