C++//递增运算符重载
1 #include <iostream>
2 #include <string>
3 using namespace std;
4
5 //重载递增运算符
6
7 //自定义整形
8 class MyInteger
9 {
10 friend ostream& operator<<(ostream& cout, MyInteger myint);
11 public:
12 MyInteger()
13 {
14 m_Num = 0;
15 }
16
17 //重载 前置++运算符 返回引用为了对一个数据进行++
18 //返回引用
19 MyInteger& operator++()
20 {
21
22 //先进行 ++运算
23 m_Num++;
24
25 //再将自身作为返回
26 return *this;
27 }
28
29
30 //重载后置++运算符
31 //void operator++(int) int 代表占位参数,可以用于区分前置喝后置递增
32 //返回值
33 MyInteger operator++(int)
34 {
35 //先记录当时结果
36 MyInteger temp = *this;
37
38 //后 递增
39 m_Num++;
40 //最后将结果返回
41 return temp;
42 }
43
44
45 private:
46 int m_Num;
47 };
48
49 //重载 <<运算符
50 ostream& operator<<(ostream& cout, MyInteger myint)
51 {
52 cout << myint.m_Num;
53 return cout;
54 }
55
56
57 void test01()
58 {
59 MyInteger myint;
60
61 cout << ++(++myint) << endl; //2
62 cout << myint << endl; //2
63 }
64
65 void test02()
66 {
67 MyInteger myint;
68
69 cout << myint++ << endl; //0
70
71 cout << myint<< endl; //1
72
73 }
74
75
76 int main()
77 {
78 test01();
79 test02();
80 }

C++//递增运算符重载的更多相关文章
- 《挑战30天C++入门极限》对C++递增(增量)运算符重载的思考
对C++递增(增量)运算符重载的思考 在前面的章节中我们已经接触过递增运算符的重载,那时候我们并没有区分前递增与后递增的差别,在通常情况下我们是分别不出++a与a++的差别的,但的确他们直接是 ...
- C++学习(12)—— 运算符重载
运算符重载概念:对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型 1.加号运算符重载 作用:实现两个自定义数据类型相加的运算 #include <iostream> #i ...
- 《挑战30天C++入门极限》C++运算符重载函数基础及其值返回状态
C++运算符重载函数基础及其值返回状态 运算符重载是C++的重要组成部分,它可以让程序更加的简单易懂,简单的运算符使用可以使复杂函数的理解更直观. 对于普通对象来说我们很自然的会频繁使用算数运 ...
- C++运算符重载
C++运算符重载 基本知识 重载的运算符是具有特殊名字的函数,他们的名字由关键字operator和其后要定义的运算符号共同组成. 运算符可以重载为成员函数和非成员函数.当一个重载的运算符是成员函数时, ...
- C++中的运算符重载
首先思考以下几个问题: 1.什么是运算符重载? 2.为什么要重载运算符,它有什么用? 3.可以重载哪些运算符? 4.重载运算符有哪些规则? 一.基本概念 我们在程序中使用各种操作符,比如加(+).赋值 ...
- 【C++】运算符重载
运算符重载,主要是简化类类型运算,能够让我们对类对象直接用运算符进行运算.基本语法: 类型 operator 运算符(参数列表){ ... } Complex operator+(Complex va ...
- C++学习6-面向对象编程基础(运算符重载、类的派生与继承、命名空间)
运算符重载 重载的运算符是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成.重载的运算符是遵循函数重载的选择原则,根据不同类型或不同参数来选择不同的重载运算符. 运 ...
- delphi 运算符重载
譬如上面的 record 可以这样声明: type TMyRec = record name: string; age: Word; class operator Grea ...
- C++基本之 运算符重载
=====>友元运算符#include <iostream> using namespace std; class Test { public: Test(int a = 0) { ...
随机推荐
- ceph-csi源码分析(6)-rbd driver-nodeserver分析(下)
更多 ceph-csi 其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(6)-rbd driver-nodeserver分析(下) 当c ...
- 16、lnmp_mysql二进制安装
16.1.lnmp介绍: lnmp架构,linux的php的程序架构: linux nginx MySQL PHP; # lamp:linux apache mysql php; 16.2.mysql ...
- KDE桌面环境下konsole,kate等软件无法切换中文输入法
解决方案(arch): 修改/etc/profile,增加以下语句: #fcitxexport XIM_PROGRAM=fcitxexport XIM=fcitxexport GTK_IM_MODUL ...
- 实例化Class类的5种方法
实例说明 java的数据类型分为两类:基础数据类型和引用数据类型.对于每种类型的对象,java虚拟机会实例化不可变的java.lang.Class对象.它提供了在运行时检查对象属性的方法,这些属性包括 ...
- (转发)forward与(重定向)redirect的区别
(转发)forward与(重定向)redirect的区别 forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服 ...
- mybatis框架的第二天
一.mybatis的基础crud的操作 先在接口中,写对应的方法名称,返回类型,访问符. 之后在映射配置文件中,写具体的实现 二.mybati中crud的细节 1.模糊查询 这是接口中 这是xml中 ...
- Linux学习之路第十天(磁盘情况查询)
一.查询系统整体磁盘使用情况 :基本语法 df -h 二.查询指定目录的磁盘占用情况 :基本语法 du -h /目录 查询指定目录的磁盘占用情况,默认为当前目录 选项 应用案例 查询/opt目录,深度 ...
- netcore3.1 + vue (前后端分离) IIS 部署
1.安装 aspnetcore-runtime-3.1.1-win-x64.exe 2.安装dotnet-hosting-3.1.1-win.exe 3.安装urlrewrite和applicatio ...
- Linux | 管首命令符号
简介 管道的意思,在我们日常生活中,意思就是运输一个东西,到下一个地方,所以说 管道命令符 的使用也是差不多的,也是运送一段数据到下一个地方,格式:命令A | 命令B | 命令C .... 所以说,管 ...
- 详解Spring中Bean的作用域与生命周期
摘要:在利用Spring进行IOC配置时,关于bean的配置和使用一直都是比较重要的一部分,同时如何合理的使用和创建bean对象,也是小伙伴们在学习和使用Spring时需要注意的部分,所以这一篇文章我 ...