实践如下:

#include <iostream>
using namespace std; class Book{ private:
int page; public:
Book(int no){
cout<<"构造器:"<<no<<endl;
page = no;
}
virtual ~Book(){}
int getPage(){
return page;
}
// + 符合重载运算
Book operator+(Book b){
// 这个方式是返回当前对象
this->page += b.page;
return *this;
// 这个方式返回一个新对象
//return Book(page + b.page);
} Book operator+(int no){
this->page += no;
return *this;
}
Book operator+=(int no){
this->page += no;
return *this;
}
// int 代表后置
Book operator++(int){
this->page ++;
return *this;
}
// 无int 代表前置
Book operator++(){
++page;
return *this;
} Book operator=(int no){
page = no;
return *this;
} // 重载转换运算符
operator double(){
return page;
} }; int main(){ cout << "重载操作符实践:" << endl; // 调用无参构造器
Book bk1();
Book bk2();
//Book bk3(0);
Book bk3 = bk1 + bk2;
cout << "bk3.getPage(): " << bk3.getPage() << endl; bk3 = bk3 + ;
cout << "bk3.getPage(): " << bk3.getPage() << endl; bk3 += ;
cout << "bk3.getPage(): " << bk3.getPage() << endl; bk3 ++;
cout << "bk3.getPage(): " << bk3.getPage() << endl; ++ bk3;
cout << "bk3.getPage(): " << bk3.getPage() << endl; bk3 = ;
cout << "bk3.getPage(): " << bk3.getPage() << endl; cout << "(double)bk3: " << (double)bk3 << endl; cout << "重载操作符实践 end." << endl; return ;
}

java中为什么不支持重载运算符:

https://zhidao.baidu.com/question/395158734721133165.html

确实吧,java是一门高级的 简易的 语言。

感觉大学教学的时候,应该先教java 再教C/C++,这样学起来应该会更好一点。

C++ 操作符重载实践 & java没有重载操作符的思路的更多相关文章

  1. cc22a_demo_c++重载自增自减操作符-代码示范

    cc22a_demo_c++重载自增自减操作符-代码示范 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespa ...

  2. 操作符 Thinking in Java 第三章

    3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 *int类型+String类型  直接转换为String类型 3.4 赋值 1. *引用=引用  两个引用指向同一个对象,所以操作 ...

  3. java的重载

    1.java的重载三种:参数类型不同,构成重载,参数类型不同:::::参数顺序不同构成重载::::::参数个数不同,构成重载

  4. Java中重载和重写的区别

    重载 overloading 1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载是一个类中多态性的一种表现. 2) Java的方法重载,就 ...

  5. java系列--重载和覆盖小结

    继承中属性的隐藏和方法的覆盖      java中规定,子类用于隐藏的变量可以和父类的访问权限不同,如果访问权限被改变,则以子类的权限为准      java中允许子类的变量与父类变量的类型完全不同, ...

  6. Java的常用操作符

    操作符用于接受一个或多个参数,并生成一个新的值.加号和一元的正号(+).减号和一元的负号(一).乘号(*).除号(/)以及赋值号(=)的用法和大多数编程语言都类似. 操作符作用于操作数,生成一个新值. ...

  7. java学习 之 操作符

    操作符介绍 java语言操作符 1.赋值操作符  = 2.计算操作符   + .- (减.负号).*(乘)./(除) 3.递增递减     --(递减).++(递增) 4.关系操作符    ==.!= ...

  8. Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs

    ylbtech-Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs 1.返回顶部 1. Java 实例 - 重载(ove ...

  9. Java重写&重载

      在学习完类和对象后,接下来就要进入面向对象的内容了,先从重写和重载开始吧.重写(Override)和重载(Overload)是两个不同的概念,也是两个容易混淆的概念,下面具体来说说这两者. 重写( ...

随机推荐

  1. Linux上安装postgres 10.5

    由于接触了华为的elk大数据平台,里面封装的是postgres ,就想着安装一下,熟悉一下postgres数据. 安装包下载:https://www.postgresql.org/ftp/source ...

  2. 11、Nginx反向代理服务

    1Nginx代理服务基本概述 1.代理一词并不陌生, 该服务我们常常用到如(代理理财.代理租房.代理收货等等),如下图所示 2.在没有代理模式的情况下,客户端和Nginx服务端,都是客户端直接请求服务 ...

  3. nginx_rtmp

    rtmp { server { listen ; chunk_size ; max_connections ; #音视频流上传和播放地址都是 rtmp://你的IP/live/streamName # ...

  4. Windows下nginx的启动,重启,关闭功能

    @echo off rem 提供Windows下nginx的启动,重启,关闭功能 echo ==================begin======================== cls :: ...

  5. composer问题集锦

    问题一:composer遇到Your configuration does not allow connection to 解决方案: 设置一个本地或全局的composer配置: composer c ...

  6. datax二次开发

    从hive抽取数据,写入hbase 一.datax插件hbase12xwriter开发 查看datax源码,发现有hbase094xwriter和hbase11xwriter源码,说明datax支持h ...

  7. Java Pattern和Matcher字符匹配详解

    http://tool.oschina.net/uploads/apidocs/jquery/regexp.html https://blog.csdn.net/rentian1/article/de ...

  8. 【洛谷P3128】Max Flow

    题目大意:给定一棵 N 个节点的无根树,有 M 个操作,每次选定一条树链,将这条链上所有点的点权 +1,最后求树上点的最大点权是多少. 题解:树上差分算法的应用. 发现操作有 M 次,但是询问只有一次 ...

  9. Acwing-98-分形之城(递推,数学)

    链接: https://www.acwing.com/problem/content/description/100/ 题意: 城市的规划在城市建设中是个大问题. 不幸的是,很多城市在开始建设的时候并 ...

  10. 解决You may use special comments to disable some warnings.

    问题:运行vue项目出现: You may use special comments to disable some warnings.Use // eslint-disable-next-line ...