C++ 操作符重载实践 & java没有重载操作符的思路
实践如下:
#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没有重载操作符的思路的更多相关文章
- cc22a_demo_c++重载自增自减操作符-代码示范
cc22a_demo_c++重载自增自减操作符-代码示范 #define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespa ...
- 操作符 Thinking in Java 第三章
3.1 更简单的打印语句 3.2 使用Java操作符 3.3 优先级 *int类型+String类型 直接转换为String类型 3.4 赋值 1. *引用=引用 两个引用指向同一个对象,所以操作 ...
- java的重载
1.java的重载三种:参数类型不同,构成重载,参数类型不同:::::参数顺序不同构成重载::::::参数个数不同,构成重载
- Java中重载和重写的区别
重载 overloading 1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型.重载是一个类中多态性的一种表现. 2) Java的方法重载,就 ...
- java系列--重载和覆盖小结
继承中属性的隐藏和方法的覆盖 java中规定,子类用于隐藏的变量可以和父类的访问权限不同,如果访问权限被改变,则以子类的权限为准 java中允许子类的变量与父类变量的类型完全不同, ...
- Java的常用操作符
操作符用于接受一个或多个参数,并生成一个新的值.加号和一元的正号(+).减号和一元的负号(一).乘号(*).除号(/)以及赋值号(=)的用法和大多数编程语言都类似. 操作符作用于操作数,生成一个新值. ...
- java学习 之 操作符
操作符介绍 java语言操作符 1.赋值操作符 = 2.计算操作符 + .- (减.负号).*(乘)./(除) 3.递增递减 --(递减).++(递增) 4.关系操作符 ==.!= ...
- Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs
ylbtech-Java-Runoob-高级教程-实例-方法:15. Java 实例 – 重载(overloading)方法中使用 Varargs 1.返回顶部 1. Java 实例 - 重载(ove ...
- Java重写&重载
在学习完类和对象后,接下来就要进入面向对象的内容了,先从重写和重载开始吧.重写(Override)和重载(Overload)是两个不同的概念,也是两个容易混淆的概念,下面具体来说说这两者. 重写( ...
随机推荐
- Caffe常用算子GPU和CPU对比
通过整理LeNet.AlexNet.VGG16.googLeNet.ResNet.MLP统计出的常用算子(不包括ReLU),表格是对比. Prelu Cpu版 Gpu版 for (int i = 0; ...
- unicode 和utf-8,GBK编码
说到编码,得先从ASCII编码讲起.ASCII编码是由美国人发明,美国的字符不超过255个,所以ASCII编码使用了8bit 即一个字节来存储字符.由于汉字的数量远超255个,所以中国自己发明了一个G ...
- linux创建定时任务发送钉钉通知
一.现在钉钉里面添加机器人 添加成功后,复制出Webhook链接. 注意,自定义关键字时你的发送信息中一定要完整包含关键字 二.找到自己的服务器 1. sudo su 切换到root用户 2.cron ...
- Java 从无类型参数Map到有类型参数Map传值的一个问题
import java.util.HashMap; import java.util.Map; public class MapTest { public static void main(Strin ...
- 解决GitHub添加sshkey仍然无法访问clone远程仓库的问题
1 ssh -v git@github.com 通过这个命令打印调试信息 ebug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS rece ...
- zabbix 4 自带 php、httpd漏洞升级
Zabbix 自带的 PHP 5.4.apache httpd 2.4.6扫描出安全漏洞,需要进行升级. PHP # php -v PHP 5.4.16 (cli) (built: Apr 12 20 ...
- C#实现下载Demo
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...
- 【bzoj 4025 改编版】graph
题意 给定一张 \(n\) 个点 \(m\) 条边的无向图,问删去每个点后,原图是不是二分图.输出一个长度为 \(n\) 的 \(\text{01}\) 串表示答案. 多组数据. \(T\le 5,\ ...
- 记录一个url_for的用法
使用url_for生成url时,需要将url协议从http换成https时,就可以通过在函数中增加参数实现: url_for('secure_thingy', _external=True, _sch ...
- CI/CD----jenkins安装配置
1.下载jenkins rpm包. https://pkg.jenkins.io/redhat/ 2.安装 rpm -ivh jenkins-2.182-1.1.noarch systemctl st ...