关于类重载前置++和后置++的骚操作

来源:互联网 发布:config sae.php 编辑:程序博客网 时间:2024/05/21 22:42

关于类重载前置++和后置++的骚操作

对于前置++和后置++,有两点很大的不同:

  1. 前置++是先对变量进行自增操作,而后置++是先得到该变量的值,然后再进行++操作
  2. 前置++可以作为做操作数,而后置++不能。

    所以我们在构建一个类时,要重载++运算符的话,就需要考虑到这两点:

const iterator operator ++ (int){    const_iterator old = *this;    ++(*this);    return old;}iterator& operator ++() {    current++;    return *this;}

这里使用一个int占位符来区别前置和后置的++操作符重载,对于前置的++,因为作为左操作符,所以返回引用类型。对于后置的++,为了模拟出先得到值,后进行加操作,所以定义了一个临时变量,返回了一个拷贝,并且后置++不能作为左操作数,所以返回类型为const引用类型。

原创粉丝点击