斑.大人 2022-04-09 12:19 采纳率: 100%
浏览 27
已结题

为啥输出没有结果,在调用Time1类的时候,构造函数赋值也没有成功

#include
using namespace std;
class Time1
{

public:
Time1(int th1=0, int tm1=0)//构造函数初始化
{
th1 += tm1 / 60;//如果分钟超过60,则小时+1
tm1 %= 60;
hour1 = th1;
mins1 = tm1;
}
int gethour()
{
return hour1;
}
int getmins()
{
return mins1;
}
protected:
int hour1, mins1;
};
class Time2:public Time1//
{
public:
Time2(int th1,int tm1,int th2,int tm2):Time1(th1,tm1)//构造函数初始化
{
th2 += tm2 / 60;//如果分钟超过60,则小时+1
tm2 %= 60;
hour2= th2;
mins2 = tm2;
}
void sub()
{
int subh, subm;
if (mins1 > mins2)//mins1为上课时间
{
subm = mins2 - mins1 + 60;
hour2--;
}
else
subm = mins2 - mins1;
subh = hour2 - hour1;
cout << "时间为" << subh << "小时" << subm << "分钟" << endl;
}
private:
int hour2, mins2;
};
int main()
{
//前两个为上课时间
Time2 time2(18, 40, 21, 50);
return 0;
}

  • 写回答

1条回答 默认 最新

  • bingbingyihao 2022-04-09 12:46
    关注

    回答:
    运行的挺好的呀:

    img

    #include <iostream>
    using namespace std;
    
    class Time1
    {
    public:
        Time1(int th1 = 0, int tm1 = 0)            //构造函数初始化
        {
            th1 += tm1 / 60;                    //如果分钟超过60,则小时+1
            tm1 %= 60;
            hour1 = th1;
            mins1 = tm1;
        }
        int gethour()
        {
            return hour1;
        }
        int getmins()
        {
            return mins1;
        }
    protected:
        int hour1, mins1;
    };
    
    class Time2 :public Time1
    {
    public:
        Time2(int th1, int tm1, int th2, int tm2) :Time1(th1, tm1)        //构造函数初始化
        {
            th2 += tm2 / 60;        //如果分钟超过60,则小时+1
            tm2 %= 60;
            hour2 = th2;
            mins2 = tm2;
        }
        void sub()
        {
            int subh, subm;
            if (mins1 > mins2)        //mins1为上课时间
            {
                subm = mins2 - mins1 + 60;
                hour2--;
            }
            else
                subm = mins2 - mins1;
            subh = hour2 - hour1;
            cout << "时间为" << subh << "小时" << subm << "分钟" << endl;
        }
        
    private:
        int hour2, mins2;
    };
    
    int main()
    {
        //前两个为上课时间
        Time2 time2(18, 40, 21, 50);
        time2.sub();
        return 0;
    }
    

    下次推荐使用代码给出,格式方便调整,另外注意注释的格式,可以统一写在代码的上一行,采用多行注释写

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 4月21日
  • 已采纳回答 4月13日
  • 创建了问题 4月9日