C++ increment/decrement/dereference 操作符典型写法
来源:互联网 发布:逆袭网络剧什么时候播 编辑:程序博客网 时间:2024/06/05 15:37
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 fetch INT& operator ++ () { ++(this->m_i); return *this; } // postfix : fetch and then increment const INT operator ++ (int) { INT temp = *this; ++(*this); return temp; } // prefix : decrement and then fetch INT& operator -- () { --(this->m_i); return *this; } // postfix : fetch and then decrement const INT operator -- (int) { INT temp = *this; --(*this); return temp; } // dereference int& 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; //2 cout << ++I << endl; //4 cout << I-- << endl; //4 cout << --I << endl; //2 cout << *I << endl; //2 return 0;}
参考资料:《STL源码剖析》,侯捷
阅读全文
0 0
- C++ increment/decrement/dereference 操作符典型写法
- increment/decrement/dereference操作符
- increment/decrement/dereference操作符
- STL源码剖析-increment/decrement/dereference操作符
- STL源码剖析学习之increment、decrement、dereference实现源码
- 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- 6. 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 6.区别increment/decrement操作符的前置和后置形式
- 区别increment/decrement操作符的前置(prefix)和后置(postfix)形式
- 条款6:区别increment/decrement操作符的前置和后置形式
- K&R C Bible Increment and Decrement Operators
- Efficient C Tips #3 – Avoiding post increment / decrement
- 读书笔记: More Effective ++ 操作符 条款6,区别increment/decrement操作符的前置(prefix)和后置(postfix)的形式
- 条款六:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- More Effective C++之Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别
- “”命名空间“System.Web”中不存在类型或命名空间名称“HttpUtility”。是否缺少程序集引用“解决方法
- 使用SiftGPU对两幅图像进行特征点匹配
- UVa
- 收集一些好的文章地址
- 泛型
- C++ increment/decrement/dereference 操作符典型写法
- 【章节6】数据库中数据的查询操作
- Leetcode 92. Reverse Linked List II
- 整合SSM(Spring+Spring+Mybatis)所有到的jar包和笔记
- 语义分割
- SQL 查重语句
- leetcode 551[easy]-- Student Attendance Record I
- eclipse 安装 lombok
- Foundation5(二十二)