运算符重载——递增运算符重载
目录:
- 运算符重载——算术运算符重载
- 运算符重载——递增运算符重载
- 运算符重载——左移运算符重载
- 运算符重载——赋值运算符重载
应用场景:
class MyInteger {
public:MyInteger() {m_A = 0;}
private:int m_A;
}
=================================
实现以下效果
MyInteger i;cout << i << endl;// 打印0
cout << ++i << endl;// 前置递增:打印1
cout << i++ << endl;// 后置递增:打印1
cout << i << endl;// 打印2
实现递增运算符重载:
class MyInteger {friend ostream& operator<< (ostream& cout, MyInteger i);public:MyInteger(int i) {m_A = i;}//前置递增运算符重载MyInteger& operator++() {++m_A;return *this;}//后置递增运算符重载MyInteger operator++(int) {//先记录当时结果MyInteger temp = *this;//实现递增this->m_A++;//返回之前记录的结果return temp;}private:int m_A;
};ostream& operator<< (ostream& cout, MyInteger i) {cout << i.m_A;return cout;
}void main() {MyInteger i(10);cout << ++i << endl; //11cout << i++ << endl; //11cout << i << endl; //12}
我们来看一下其中主要的代码:
- 前置递增运算符重载
MyInteger& operator++() {m_A++;return *this;}
- 后置递增运算符重载
//这里的int代表占位参数,可以用来区分前置递增和后置递增MyInteger operator++(int) {//先记录当时结果MyInteger temp = *this;//实现递增m_A++;//返回之前记录的结果return temp;}
两者的主要区别:
- 前置递增运算符重载函数返回值是当前对象的引用
- 后置递增运算符重载函数返回值是一个新的对象
- 后置递增运算符重载函数有一个int占位参数,用与区别与前置递增
以上代码还实现了左移运算符重载:
ostream& operator<< (ostream& cout, MyInteger i) {cout << i.m_A;return cout;
}
关于左移运算符重载的详细介绍请看:运算符重载——左移运算符重载
运算符重载——递增运算符重载相关推荐
- C++递增运算符重载
C++递增运算符重载 递增运算符重载 作用 案例 递增运算符重载 作用 通过重载递增运算符,实现自己的整型数据 案例 class MyInteger {friend ostream& oper ...
- 【++运算符重载】c++实现递增运算符重载
作用: 通过重载递增运算符,实现自己的整型数据 class MyInteger {friend ostream& operator<<(ostream& out, MyIn ...
- 运算符重载——左移运算符重载
目录: 运算符重载--算术运算符重载 运算符重载--递增运算符重载 运算符重载--左移运算符重载 运算符重载--赋值运算符重载 应用场景: 可以输出自定义的数据类型信息 Person p(" ...
- 运算符重载——算术运算符重载
目录: 运算符重载--算术运算符重载 运算符重载--递增运算符重载 运算符重载--左移运算符重载 运算符重载--赋值运算符重载 应用场景: Person p1(100);// p1有100元 Pers ...
- 重载运算与类型转换——基本概念,输入和输出运算符,算术和关系运算符,赋值运算符,下标运算符,递增和递减运算符,成员访问运算符...
一.基本概念 重载的运算符时具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.和其他函数一样,重载的运算符也包含返回类型.参数列表以及函数体. 重载运算符函数的参数 ...
- C++_类和对象_C++运算符重载_递增运算符重载_重载++运算符_前置++_后置++重载---C++语言工作笔记057
然后我们再来看这个递增运算符的重载. 我们知道,递增运算符,有前置++,和后置++,可以看到,上面写了 然后我们这次就自己定义一个int的类型,MyInteger,然后实现,递增,递减的操作. 首先我 ...
- C++ 重载函数和重载运算符
C++ 允许在同一作用域中的某个函数和运算符指定多个定义,分别称为函数重载和运算符重载. 重载声明是指一个与之前已经在该作用域内声明过的函数或方法具有相同名称的声明,但是它们的参数列表和定义(实现)不 ...
- 走进C++程序世界------操作符运算、操作符重载、转换运算符、双目元算、+=,-+运算符,比较运算符及下标运算符
重载,在一个类定义中,可以编写几个同名的方法,但是只要它们的签名参数列表不同,Java就会将它们看做唯一的方法.简单的说,一个类中的方法与另一个方法同名,但是参数表不同,这种方法称之为重载方法 下面关 ...
- C++中重载下标运算符[]
1.C++中重载下标运算符[] C++规定,下标运算符[]必须以成员函数的形式进行重载,该重载函数在类中的声明格式如下: 返回值类型 & operator[] (参数列表);// 或者cons ...
最新文章
- 让用VS2012/VS2013编写的程序在XP中顺利运行
- linux kernel内存管理学习篇
- 【PP生产订单】入门介绍(十二)
- 【Node】常用基础 API 整理
- ubuntu 目录及文件权限 000 444 666 777(转)
- 判断字符串相等能否用==
- 【翻译】eXpressAppFramework QuickStart 业务模型设计(十)——在代码中实现数据验证...
- Javascipt数组去重的几种方式
- JavaSE——面向对象进阶(封装、this、static、代码块、包、权限修饰符、main方法详解)
- java中的@override
- Panorama是什么意思
- s8050三极管经典电路_电子电路-闪瞎你的眼!爆闪警示灯超简单原理介绍!
- Android9.0 HIDL头文件加log编译
- web项目中图标的前端处理方案
- 什么是OTDR测试仪?什么又是福禄克测试?
- clustalX2使用以及相关的问题
- bat文件隐藏/显示文件夹
- 记一次Mysql并发死锁,引出的问题及讨论
- Windows10设置开机自启动文件(或删除)
- 自然图像抠图/视频抠像技术发展情况梳理
热门文章
- js中的call和apply方法的区别
- Akka边学边写(3)-- ByteString介绍
- NO.4 Android开发中常用框架及工具
- (转)VC++多线程编程
- android app resign之后安装提示INSTALL_PARSE_FAILED_NO_CERTIFICATES的解决办法
- android菜单详解四:子菜单
- 【JavaScript 笔记】— 函数高级(变量作用域、解构赋值、方法、高阶函数、闭包、箭头函数、generator)
- 《恋上数据结构第1季》二叉树代码实现
- MongoDB基本语法和操作入门
- 4个关于中台最常见的误区,用最通俗的话给你一次解释清楚