初步C++运算符重载学习笔记<3> 增量递减运算符重载
增量、减量运算符++(--)分别有两种形式:前自增++i(自减--i)。后自增i++(自减i--)
因此当我们重载该运算符时,要重载对应形式的运算符。
T & operator ++() // 前自增++i
T & operator ++(int) //后自增 i++
举例:
#include <iostream>
using namespace std; class complex
{
double re;
double im;
public:
complex(double _re,double _im):re(_re),im(_im){};
void print(){cout<<re<<" "<<im<<endl;}
friend complex operator+(const complex &a ,const complex &b); //想想返回为什么不是complex &
complex& operator++();
complex& operator++(int);
}; complex operator+(const complex &a , const complex &b)
{
return complex(a.re + b.re , a.im + b.im );
} complex& complex::operator++() //前自增 ++i
{
re = re + 1;
return *this;
} complex& complex::operator++(int) //后自增 i++ int仅仅是区分前后自增
{
im = im + 1;
return *this;
} int main()
{
complex a(1,2);
complex b(3,4);
complex c = a + b;
complex d = a + b + c;
c.print();
d.print(); (c++)++;
c.print();
++(++d);
d.print();
return 0;
}
结果输出为:
c后自增两次 虚部由6到8
d前自增两次 实部从10到12
版权声明:本文博客原创文章,博客,未经同意,不得转载。
初步C++运算符重载学习笔记<3> 增量递减运算符重载的更多相关文章
- 初探C++运算符重载学习笔记<2> 重载为友元函数
初探C++运算符重载学习笔记 在上面那篇博客中,写了将运算符重载为普通函数或类的成员函数这两种情况. 以下的两种情况发生.则我们须要将运算符重载为类的友元函数 <1>成员函数不能满足要求 ...
- JavaSE学习笔记(1)---数据类型、运算符、控制结构
javaSE学习笔记(1) 数据类型和运算符 1.注释可以提高程序的可读性.可划分为 单行注释 // 多行注释 /.../ 文档注释 /**...*/ 2.标识符的命名规则: 标识符必须以字母.下划线 ...
- JavaScript权威设计--JavaScript表达式与运算符(简要学习笔记五)
1.3种原始表达式 1.直接量: 1.23 //数字直接量 “hello” //字符串直接量 ...
- js权威指南学习笔记(二)表达式与运算符
1.数组初始化表达式 数组直接量中的列表逗号之间的元素可以省略,这时省略的空位会填充undefined.如: 2 2 1 var arr = [1,,,,,6]; 2 ...
- Java学习笔记十二:Java中方法的重载
Java中方法的重载 什么是方法的重载呢? 如果同一个类中包含了两个或两个以上方法名相同.方法参数的个数.顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了.如下所示 4 个方法名称都为 s ...
- Java学习笔记五:Java中常用的运算符
Java中常用的运算符 运算符是一种“功能”符号,用以通知 Java 进行相关的运算.譬如,我们需要将变量 score 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作. Java ...
- C++对运算符进行重载学习笔记
1. 一个类的成员函数是暗含着 this 指针的,eg; #include<iostream> using namespace std; class A{ public: A(){ x ...
- [Python学习笔记1]Python语言基础 数学运算符 字符串 列表
这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...
- C++基础学习笔记----第四课(函数的重载、C和C++的相互调用)
本节主要讲了函数重载的主要概念以及使用方法,还有C和C++的相互调用的准则和具体的工程中的使用技巧. 函数重载 1.基本概念 函数重载就是用同一个函数名来定义不同的函数.使用不同的函数参数来搭配同一个 ...
随机推荐
- boost::asio async_write也不能保证一次发完所有数据 一
你要是看过basic_stream_socket的文档,里面提到async_write_some不能保证将所有要发送的数据都发出去.并且提到如果想这样做,需要使用boost asio的async_wr ...
- “add measurements”(添加度量)菜单问题
- MSSQL - 自增1的标识列一次增长了1000
@情若天_RunUp: 1. Open "SQL Server Configuration Manager"2. Click "SQL Server Services&q ...
- Entity FramWork - 在VS里面直接创建表,并同步到数据库
前面具体添加什么直接看: 1.Entity - 使用EF框架进行增删改查 - 模型先行 2.Entity - 使用EF框架进行增删改查 - 数据库先行 然后: 然后右键,可以添加[实体],也就是表.之 ...
- sql为数字添加千分位(也就是钱的格式)
感觉这个东西在项目中用得挺多的,之前在前台页面是用正则来处理,现在由于是数据查询,所以直接在查出数据的时候将其转为指定的千分位格式,省的前台再处理,不讲原理,因为我也看不懂,不过会用就行了,在网上找了 ...
- autotools入门笔记(一)
GNU autotools作用:收集系统配置信息并自动生成Makefile文件. GNU autotools主要包括三个工具:autoconf.automake.libtool,还有很多辅助的工具,包 ...
- 一种H.264高清视频的无参考视频质量评价算法(基于QP和跳过宏块数)
本文记录一种无参考视频质量评价算法.这是我们自己实验室前两年一个师姐做的,算法还是比较准确的,在此记录一下. 注意本算法前提是高清视频.而且是H.264编码方式. 该方法主要使用两个码流里面的参数进行 ...
- meminfo,df,
yx100:root@yxRouter:/# cat /proc/meminfoMemTotal: 126584 kBMemFree: 103156 kBBuffer ...
- Java调用cmd命令 打开一个站点
使用Java程序打开一个站点 近期做了个东西使用SWT技术在一个client程序 须要升级时在提示升级 点击窗口上的一个连接 打开下载网页 花费了我非常长时间 用到了把它记录下来 怕是忘记,须要时能 ...
- 【Error】JavaWeb: 严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"]
在MyEclipse中启动Tomcat时出现错误,错误信息例如以下: 严重: Failed to initialize end point associated with ProtocolHandle ...