实践如下:

#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. 第五篇 CSS入门 明白 三种嵌套形式,三种常用控制器

    CSS入门 css是 层叠式样式表   css的作用是什么呢?举个抽象的例子啊,HTML是人,CSS则是衣服...   css给html穿上衣服,有三种形式: 内嵌.内联.外联. 这三种形式,优先级为 ...

  2. 如何编写一个路由器的界面1-Luci开发入门

    Howto:如何写Module(模块)-----------------这一部分主要是翻译github上的document 注意:如果您打算将模块加入LUCI整合之前,您应该阅读Module参考. 本 ...

  3. (转)java并发编程:CopyOnWriteArrayList

    原文链接:http://ifeve.com/java-copy-on-write/ Copy-On-Write简称COW,是一种用于程序设计中的优化策略.其基本思路是,从一开始大家都在共享同一个内容, ...

  4. 使用QEMU模拟树莓派

    QEMU上的树莓派 我们开始设置一个Lab VM.我们将使用Ubuntu并在其中模拟我们所需的ARM版本. 首先,获取最新的Ubuntu版本并在VM中运行它: https://www.ubuntu.c ...

  5. Summer training round2 #1

    A:水 B:求两个三角形之间的位置关系:相交 相离 内含 ①用三个点是否在三角形内外判断    计算MA*MB.MB*MC.MC*MA的大小 若这三个值同号,那么在三角形的内部,异号在外部 #incl ...

  6. iptables设置

    一,安装iptables yum -y install iptables-services iptables-devel 二,查看规则 iptables -nL --line-number 三,清空规 ...

  7. javaweb 一个坑—— writer必须放在response相关设置后面

    https://blog.csdn.net/weixin_33962621/article/details/86454414

  8. Puppet部署:安装puppet server、client

    Puppet部署:安装puppet server.client   puppet与其他手工操作工具有一个最大的区别就是 puppet的配置具有稳定性,因此你可以多次执行puppet,一旦你更新了你的配 ...

  9. Acwing-278-数字组合(背包)

    链接: https://www.acwing.com/problem/content/280/ 题意: 给定N个正整数A1,A2,-,AN,从中选出若干个数,使它们的和为M,求有多少种选择方案. 思路 ...

  10. Redis——认识

    Redis和Memcached比较: https://www.cnblogs.com/JavaBlackHole/p/7726195.html https://blog.csdn.net/lch_20 ...