运算符重载(一)

一、运算符重载的定义

在C++中,运算符重载是指通过定义新的运算符功能或重新定义已有运算符的功能。通过运算符重载,可以使得特定的运算符能够在不同的数据类型或对象上进行不同的操作,从而提高代码的灵活性和可读性。(简单理解为,可以直接对类的对象进行运算符操作,不需要具体到变量成员函数。)

二、加法运算符重载

代码示例:

Time operator+(const Time &t)const
{
    Time sum;//重新定义Time类对象
    sum.hour = this->hour + t.hour + (t.minutes + this->minutes)/60;
    //当前类对象this和输入类对象t相加
    sum.minutes = (this->minutes + t.minutes)%60;
    return sum;//返回对象值
}

同理,可以仿照出其他运算符(-、*、/)。

三、运算符示例

代码示例:实现一个计算器类,可以计算整数和小数的+-*/。(你需要重载这些运算符)。

#include <iostream>
#include <string>
using namespace std;

class Computer{
    public:
        float num1;
        Computer():num1{}{}
        Computer(float num1):num1(num1){}
};
//全局函数
//定义一个函数,实现两个对象相加属性后返回新的对象
Computer operator+(Computer &s1,Computer &s2)
{
    Computer temp;
    temp = s1.num1 + s2.num1;
    return temp;
}
Computer operator-(Computer &s1,Computer &s2)
{
    Computer temp;
    temp = s1.num1 - s2.num1;
    return temp;
}
Computer operator*(Computer &s1,Computer &s2)
{
    Computer temp;
    temp = s1.num1 * s2.num1;
    return temp;
}
Computer operator/(Computer &s1,Computer &s2)
{
    Computer temp;
    if(s2.num1 != 0)
    {
        return temp = s1.num1 / s2.num1;
    }
    else
    {
        cout<<"除数不能为0,报错"<<endl;
        return 0;
    } 
}

int main()
{
    Computer s1(20);
    Computer s2(20.5);
    Computer s3 = s1 + s2;
    Computer s4 = s1 - s2;
    Computer s5 = s1 * s2;
    Computer s6 = s1 / s2;
    cout<<"s3 = s1 + s2 = "<<s3.num1<<endl;
    cout<<"s4 = s1 - s2 = "<<s4.num1<<endl;
    cout<<"s5 = s1 * s2 = "<<s5.num1<<endl;
    cout<<"s6 = s1 / s2 = "<<s6.num1<<endl;
    return 0;
}

运行结果:

40.5
-0.5
410
0.97561

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值