IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> More Effective C++ 条款06:区别自增/自减操作符的前置和后置形式 -> 正文阅读

[C++知识库]More Effective C++ 条款06:区别自增/自减操作符的前置和后置形式

重载方式:

class UPInt{
public:
    UPInt& operator++();  //前置式++
    const UPInt operator++(int);  //后置式++

    UPInt& operator--(); //前置式--
    const UPInt operator--(int);  //后置式--

    UPInt& operator+=(int);  //+=操作符,结合UPInts和ints
};

UPInt i;
++i;   //调用i.operator++()
i++;   //调用i.operator++(0)
--i;   //调用i.operator--()
i--;   //调用i.operator--(0)

前置自增:累加然后取出

后置自增:取出然后累加

实现:

//前置式:累加然后取出
UPInt& UPInt::operator++()
{
    *this += 1;
    return *this;
}

//后置式:取出然后累加
const UPInt UPInt::operator++(int)
{
    UInt oldValue = *this;
    ++(*this);  //调用前置
    return oldValue;  //返回先前被取出的值
}

后置返回const对象的原因是,如果不这样做,以下动作是合法的:

UPInt i;
i++++; //实施两次后置自增

//类似于
i.operator++(0).operator++(0);

operator++的第二个调用动作施行于第一个调用动作的返回对象身上。

总结:处理用户定制类型时,应该尽可能使用前置式自增,效率较高。后置自增和自减操作符的实现应以前置式兄弟为基础,如此一来你就只需要维护前置式版本,因为后置式版本会自动调整为一致的行为。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 17:14:26  更:2022-03-12 17:15:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:55:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码