C++之++和--操作符重载

来源:互联网 发布:淘宝淘客联盟 编辑:程序博客网 时间:2024/06/09 13:42

一、++用于基础数据类型  

  在C/C++语言中++操作符用于对变量自增1操作。++操作符可以用做前置,也可以用作后置。先来分析下面代码:

int i = 0;cout << "i++ = " << i++ << endl;cout << "i = " << i << endl;cout << "++i = " << ++i << endl;cout << "i = " << i << endl;

运行结果如下所示:
这里写图片描述

由上图可知:

i++;    // i的值作为整个表达式的返回值,然后i自增1++i;    // i先自增1,然后i的值作为整个表达式的返回值

二、++操作符重载

++操作符是可以重载的
  1.可以重载为全局函数或者成员函数
  
  2.后置++操作符需要一个int类型的占位参数;
  
  3.前置++操作符不需要额外的参数。

下面给出++操作符重载为成员函数的示例代码:

#include <iostream>#include <string>using namespace std;class Test{    int mValue;public:    Test(int i)    {        mValue = i;    }    int value()    {        return mValue;    }    // 重载前置++    Test& operator ++ ()    {        ++mValue;        return *this;    }    // 重载后置++    Test operator ++ (int)    {        Test ret(mValue);        mValue++;        return ret;    }};int main(){    Test t(0);    cout << "(t++).value() = " << (t++).value() << endl;    cout << "t.value() = " << t.value() << endl;      cout << "(++t).value() = " << (++t).value() << endl;    return 0;}

运行结果如下图所示:

这里写图片描述

结果显示跟我们分析的是一致的。

三、++操作符的效率

对于基础类型的变量

  • 前置++和后置++的效率基本相同;
  • 项目中选择哪种格式根据编码规范和应用场景选择。

对于类类型的对象

  • 前置++的效率高于后置++;
  • 尽量使用前置++操作符提高程序效率。

四、内容扩展

  上面均是用++操作符来讲述的,对于--操作符和++操作符的原理是一样的。

原创粉丝点击