为啥输出没有结果,在调用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;
}

回答:
运行的挺好的呀:

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;
}

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