求dalao给本蒟蒻讲一讲运算符重载的代码的意思以及原理不太懂
  • 板块学术版
  • 楼主Xlon_WU
  • 当前回复16
  • 已保存回复16
  • 发布时间2023/8/21 13:21
  • 上次更新2023/11/3 02:15:58
查看原帖
求dalao给本蒟蒻讲一讲运算符重载的代码的意思以及原理不太懂
958002
Xlon_WU楼主2023/8/21 13:21

运算符重载的语法学得差不多了,但代码的意思以及原理不太懂,望dalao给本蒟蒻讲一讲

附上一个例题及代码(书上的),dalao可以以此为例题讲述:

时间运算

题目描述

在某个上网计费系统中,用户使用时间通常格式是:几小时几分钟。用一个结构体表示时间是个不错的方法。

现在希望你设计个好的方法,能够快速方便的在程序中累加时间。

输入格式

第1行:一个字整数 N,范围在[1…1000]。

下面有N行,每行2个整数:h 和 m 。表示一个用户上网时间是 h 小时、m 分钟。

输出格式

一行:2个整数 h 和 m,表示N个时间的和。

样例输入

4 1 15 0 56 5 12 3 8

样例输出

10 31

提示

对于100%的测试数据:0<=hi<=1000,0<=mi<=59

下面是书本提供的示例代码

#include <iostream>
#include <string>
using namespace std;
struct tTime{
    int h,m;//h 小时;m 分钟
    tTime operator+(const tTime x)const{
        tTime tmp;
        tmp.m=(tmp.m+x.m)%60;
        tmp.h=tmp.h+x.h+(tmp.m+x.m)/60
        return tmp;
    }
};
int N;
tTime a[1001],sum;
int main(){
    cin>>n;
    sum.h=sum.m=0;
    for(int i=0;i<N;i++){
        cin>>a[i].h>>a[i].m;
        sum=sum+a[i];
    }
    cout<<sum.h<<" "<<sum.m<<endl;
    return 0;
}

望dalao解释此代码

2023/8/21 13:21
加载中...