任务描述

Int 类所保存的内容显然是可以进行算术运算的,因此对 Int 类进行算术运算符重载是一件非常自然的事情。

Int 类重载算术运算符,以成员函数的形式。

相关知识

算术运算符既可以以成员函数形式重载,也可以以普通函数形式重载。出于某种“对称性”的考虑,一般习惯使用普通函数来重载算术运算符。
需要注意的是,二者取其一。即如果以成员函数形式重载了算术运算符,就不要再以普通函数重载(相同参数的)。反之,亦然。

编程要求

根据提示,在右侧编辑器的Begin-End区域内补充代码。

测试说明

本关共 3 个文件,Int.h、Int.cpp 和 main.cpp。其中 Int.h 和 main.cpp 不得改动,用户只能修改 Int.cpp 中的内容。

Int.h 内容如下:

  1. /**
    * 这是一个包装类(wrapper class),包装类在C++中有点小小的用处(基本上没用),在Java中的用处更大一些。
    */#ifndef _INT_H_ //这是define guard
    #define _INT_H_ //在C和C++中,头文件都应该有这玩意class Int{
    private://这是访问控制——私有的
    int value; //这是数据成员,我们称Int是基本类型int的包装类,就是因为Int里面只有一个int类型的数据成员public: //这是公有的
    Int():value(0){}
    Int(Int const&rhs):value(rhs.value){}
    Int(int v):value(v){}int getValue()const{return value;}
    void setValue(int v){value=v;}//成员函数算术运算符重载
    Int operator + (Int const&rhs);
    Int operator - (Int const&rhs);
    Int operator * (Int const&rhs);
    Int operator / (Int const&rhs);
    Int operator % (Int const&rhs);};//记住这里有一个分号#endif

main.cpp 内容如下:

  1. #include "Int.h"
    #include <iostream>
    using namespace std;int main(){
    int x,y;
    cin>>x>>y;
    Int a(x),b(y);
    Int c,d,e,f,g;c = a + b;
    d = a - b;
    e = a * b;
    f = a / b;
    g = a % b;cout<<c.getValue()<<" "
    <<d.getValue()<<" "
    <<e.getValue()<<" "
    <<f.getValue()<<" "
    <<g.getValue()<<endl;return 0;
    }
/*********** BEGIN **********/
#include<iostream>
using namespace std;
#include"Int.h"
Int Int::operator+(Int const&rhs)
{Int m;m.setValue(getValue()+rhs.getValue());return m;
}
Int Int::operator-(Int const&rhs)
{Int m;m.setValue(getValue()-rhs.getValue());return m;
}
Int Int::operator*(Int const&rhs)
{Int m;m.setValue(getValue()*rhs.getValue());return m;
}
Int Int::operator/(Int const&rhs)
{Int m;m.setValue(getValue()/rhs.getValue());return m;
}Int Int::operator%(Int const&rhs)
{Int m;m.setValue(getValue()%rhs.getValue());return m;
}
/********** END **********/

算术运算符重载——成员函数重载算术运算符相关推荐

  1. C++用友元成员函数重载运算符,实现+-的重载使之适用复数计算

    /*用友元成员函数重载运算符,实现+-的重载使之适用复数计算 */ #include<iostream> using namespace std; class complex{ priva ...

  2. (P22)运算符重载:运算符重载 ,成员函数重载 ,非成员函数重载 ,运算符重载规则

    文章目录 1.运算符重载 2.成员函数重载 3.非成员函数重载 4.运算符重载规则 1.运算符重载 运算符重载允许把标准运算符(如+.-.*./.<.>等)应用于自定义数据类型的对象 直观 ...

  3. 用友元函数重载乘法,用成员函数重载除法

    #include<iostream> using namespace std; class Complex {private:int real;//记录实部; int imag;//记录虚 ...

  4. C++类成员函数重载问题

    C++类成员函数重载问题 #include <iostream> using namespace std; class A {private: int a;int b; public:A( ...

  5. C++成员函数重载、覆盖和隐藏的区别

    *************************************************** 更多精彩,欢迎进入:http://shop115376623.taobao.com ****** ...

  6. 算术运算符重载——普通函数重载算术运算符

    任务描述 Int 类所保存的内容显然是可以进行算术运算的,因此对 Int 类进行算术运算符重载是一件非常自然的事情. 为 Int 类重载算术运算符,以普通函数的形式. 相关知识 运算符重载,相当于一个 ...

  7. 重载运算符作为成员函数还是非成员函数

    一.定义为成员函数的运算符 1. 赋值.调用.下标.成员访问箭头运算符(=.().[].->) 2. 改变对象状态的运算符或者与给定类型密切相关的运算符(递增++.递减--.解引用*) 3. 复 ...

  8. 《C++成员函数重载、覆盖与隐藏》

    <成员函数的重载.覆盖与隐藏> ------------------------------------------------------------------------------ ...

  9. c++中成员函数重载

    函数重载简单说是一个函数实现多个功能,函数名称相同但函数的参数不同或参数类型不同. int add(int a,int b); float add(float a,float b); int add( ...

最新文章

  1. spring上下文是什么意思_Java程序员只会CRUD连Spring事务传播机制都不懂?
  2. 计算机知识的更新速度,笔记本电脑硬盘如何升级?要容量还是速度?这些知识你需要学会...
  3. 如何使用Git解决“错误:错误索引 - 致命:索引文件损坏”
  4. 使用axis2进行WebService的开发
  5. C++之菱形继承的解决之道
  6. 10.18.1 linux文本编辑器vim
  7. 生成验证码的流程分析.
  8. JAVA编程相关:eclipse如何导入已有工程
  9. 【转载】Java 内存分配全面浅析
  10. 某一年某一年_一年关于开放组织的对话
  11. Android Studio 复制粘贴图片到drawable文件夹没有效果 - 解决方法
  12. Unity3D中自带事件函数的执行顺序
  13. 哪些因素影响大数据的发展
  14. rsync使用(二)
  15. 超详细的Engauge Digitizer 软件教程
  16. 下载精确卫星星历文件 2015.3.31
  17. 3D 沙盒游戏之人物的点击行走移动
  18. vscode 全局背景图片设置 background
  19. macOS Big Sur 11.7.2 (20G1020) 正式版 ISO、PKG、DMG、IPSW 下载
  20. Dubbo 自定义异常,你是怎么处理的?

热门文章

  1. ArcSDE 日志文件表(一)
  2. 设计一个函数,要求能将一个正整数 n 按反序输出,n 的位数不定。例 如,123 输出 321。
  3. element 表格 评分表(合并单元格,单选框按钮选分,计算表格总分)
  4. SSL证书与Https应用部署小结(转发)
  5. linux 符号连接文件,Linux 硬链接和软链接(符号链接)
  6. docker入门小实验
  7. 让“物”能说会道,揭晓华为云IOT黑科技
  8. 自主可控桌面操作系统替换的思考
  9. u盘里装linux系统软件,手把手教你在U盘里面安装一个LINUX系统
  10. m未能建立与ppp服务器的连接6,未能建立与ppp服务器