• C++的前置++、后置++和前置--、后置--


    一、C++的前置++和后置++

       在C++中,运算符重载是你必须要掌握的重点,而前置++和后置++有什么区别呢?其实前置++和后置++是有关于

    影响效率的问题,前置++比后置++的效率要高,原因是因为前置++不会产生一个临时对象而去直接进行++运算,而后

    置++要先产生一个临时对象来保存当前数据,然后进行++运算,最后返回临时对象,这样无形中会增加额外的开销,

    这样肯定会影响效率的。下面是两种++运算的重载函数:

    class Base
    {
       public:
         Base(int data=0):m_data(data)
         {
         }
         ~Base()
         {}
       public:
         Base& operator++()
         {
            m_data++;
            return *this;
          }
         Base operator++(int)
         {
            Base tmp(m_data);
            m_data++;
            return tmp;
         }
       private:
         int m_data;
    };

           在上面的重载++运算符的函数中,第一个函数就是前置++运算符的重载,因为是返回的是当前对象,所以函数可

    以引用返回。第二个函数就是后置++运算符的重载,因为在其内部创建了一个临时对象用来进行++运算,并且最后返

    回的是临时对象的值,所以函数不能以引用返回,而且为了区分是前置++还是后置++运算符的重载,则添加一个参数

    用于区别。

    二、C++的前置--和后置--

       同样的既然有前置++和后置++就会有前置--和后置--,下面是两种--运算符的重载:

    class Base
    {
       public:
         Base(int data=0):m_data(data)
         {
         }
         ~Base()
         {}
       public:
         Base& operator--()
         {
            m_data--;
            return *this;
          }
         Base operator--(int)
         {
            Base tmp(m_data);
            m_data--;
            return tmp;
         }
       private:
         int m_data;
    };

      其解释和上面的++运算符重载解释基本相同,这里就不再次赘述了。

  • 相关阅读:
    Python lambda 多变量
    Python 的 zip 和 dict 组合 生成新字典
    Solr集群Replication配置与实践(四)
    linux系统搭建zookeeper集群(二)
    linux系统中安装solr搜索引擎(一)
    Solr搜索引擎集群搭建(三)
    CentOS7的yum重装
    安装konga 路由设置
    安装Snipe-IT资产管理系统
    安装GLPI资产管理
  • 原文地址:https://www.cnblogs.com/XNQC1314/p/9047963.html
Copyright © 2020-2023  润新知