C++自增(increment)、自减(decrement)运算符(operator++,operator--)和取值(dereference ,或称解引用)运算符(operator*)的典型写法,其中自增自减运算符分为前置式(prefix)和后置式(postfix)两种。

以简单实现INT自增/自减/取值为例:

#include <iostream>
using namespace std;class INT
{friend ostream& operator << (ostream& os, const INT& i);
private:int m_i;public:INT(int i) : m_i(i) {};// prefix : increment and then fetchINT& operator ++ (){++(this->m_i);return *this;}// postfix : fetch and then incrementconst INT operator ++ (int){INT temp = *this;++(*this);return temp;}// prefix : decrement and then fetchINT& operator -- (){--(this->m_i);return *this;}// postfix : fetch and then decrementconst INT operator -- (int){INT temp = *this;--(*this);return temp;}// dereferenceint& operator * () const{return (int&)m_i;//转换操作告诉编译器将const int转换为non-const lvalue}
};ostream& operator << (ostream&os, const INT& i)
{os << i.m_i;return os;
}int main()
{INT I(2);cout << I++ << endl;    //2cout << ++I << endl;    //4cout << I-- << endl;    //4cout << --I << endl;    //2cout << *I  << endl;    //2return 0;
}

参考资料:《STL源码剖析》,侯捷

C++ increment/decrement/dereference 操作符典型写法相关推荐

  1. [agc 049E][凸性dp][小计数] Increment Decrement

    妹神的,看不懂 官方题解 前言:博主已经 菜到没救了/kk 由于zz的博主认为官方题解不太好懂,需要一些细节的解释,于是 xjb写了一篇自己都看不懂的题解 题意 定义个一个长度为n的整数序列A的权值如 ...

  2. 【c++从菜鸡到王者】第六篇:详解晦涩难懂的c++语法

    stl_config.h的各种组态 在阅读侯捷老师的<stl源码剖析>,了解到组态这个东西,说是其书上所列的几个组态常量是用来区分编译器对c++ Standard的支持程度,以下的组态所关 ...

  3. STL源码剖析学习之increment、decrement、dereference实现源码

    //STL之increment.decrement.dereference实现源码 //学习目的:STL实现原理.操作符(++i,i++,*等操作符的重载) //increment/dereferen ...

  4. C++ 重载操作符与转换

    <C++ Primer 4th>读书笔记 重载操作符是具有特殊名称的函数:保留字 operator 后接需定义的操作符号. Sales_item operator+(const Sales ...

  5. 第十四章 重载操作符与转换

    code: /*第14章 重载操作符与转换14.1 重载操作符的定义 14.2 输入和输出操作符 14.3 算术操作符和关系操作符 14.4 赋值操作符 14.5 下标操作符 14.6 成员访问操作符 ...

  6. 《C++ Primer》之重载操作符与转换(中)

    赋值操作符 类赋值操作符接受类类型形参,通常,该形参是对类类型的 const 引用,但也可以是类类型或对类类型的非 const 引用.如果没有定义这个操作符,则编译器将合成它.类赋值操作符必须是类的成 ...

  7. [c++primer][14]重载操作符与转换

    14.1 重载操作符的定义 不能重载的操作符:.  ?:  sizeof  ::  .* 不能为任何内置类型定义额外的新的操作符:优先级和结合性是固定的:不再具备短路求值特性(不建议重载&&a ...

  8. react ts环境搭建及ts格式写法

    1.脚手架启动npx create-react-app 项目名称 --template typescript 官方建议:If you've **previously installed create- ...

  9. c++ primer读书笔记-第十四章 重载操作符与转换

    C++ 允许我们重定义操作符用于类类型对象时的含义.如果需要,可以像内置转换那样使用类类型转换,将一个类型的对象隐式转换到另一类型. 例如标准库为容器类定义了几个重载操作符.这些容器类定义了下标操作符 ...

最新文章

  1. 7天攻克运维瓶颈 玩转立体运维
  2. Laravel项目上传github后,clone到本地运行时报错500的解决方法
  3. Django学习(第四天:ORMModel)
  4. 测试自己幸运数字的软件,心理测试:选一个你的幸运数字,测一下你最近会有什么好事发生?...
  5. 《网络攻防第六周作业》
  6. 服务器网站打开慢跟什么有关系吗,浏览器访问网站的速度很慢,跟服务器的好差有关系吗?跟域名有关系吗?...
  7. html %3c自动转化,将几个文件中的大型HTML文件拆分
  8. k8s(Kubernetes) 上部署 Redis 集群(3主3从)
  9. ui设计移动端字体适配_UI设计师设计移动端界面要注意的字体规范有那些?
  10. 带你玩转 3D 检测和分割(一):MMDetection3D 整体框架介绍
  11. 物联网嵌入式——学习分享
  12. 9.支撑向量机SVM
  13. 百度2017春招笔试真题编程题集合 [编程题]买帽子
  14. Unity 的 Scroll View组件
  15. 如何下载浏览器中的flash 视频
  16. 实现计算机联网的最大好处是,职.称计算机考试多项选择题考试卷模拟考试题...
  17. (10)大类资产配置一升级版股债平衡
  18. 代谢组+基因组联合分析
  19. ajax用户名注册自动刷新,ajax+jsp实现 无刷新页面下注册时检测用户名是否已存在...
  20. 从「富爸爸现金流」游戏中总结的理财四条

热门文章

  1. ubuntu系统镜像下载源
  2. 微信小程序连接emqx服务器实现数据交互
  3. 阿里云服务器租赁注意点
  4. Kettle连接mysql 驱动报 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘..
  5. 用ps增加照片的气氛--镜头光晕
  6. (转)(笔记)screen tearing
  7. linux 查看 man 路径配置文件 man.config,linux man 1,2,3....
  8. 开启FTP的21端口
  9. C语言编译过程流程图
  10. 第一章 初识JVAV