实现一个抽象基类Clock,由此派生出类ClockA和ClockB,其中A包含hour,minute,second变量表示时间,而B使用quarter(=15min)和second来表示,输入了n个ClockA类型的对象,m个ClockB类型的对象,它们被统一存放在一个*Clock类型的数组里,现在想要对这个数组按照其中存储的时间长短,由短到长进行排序(排序部分已给出,需要在外部实现cmp函数,如果a的时间比b少,则返回true),排序后输出,输出函数已给出,完善剩余内容
#include输入描述格式见代码
输出描述格式见代码
只需要提供类的实现
样例输入输出
3 2
10 15 30
10 14 31
10 10 10
50 0
41 0
10:10:10
10:14:31
41:0
10:15:30
50:0
class Clock{
public:
virtual void print()=0;
virtual int getsum()=0;
};
class ClockA:public Clock{
int hour;
int minute;
int second;
public:
int getsum(){
int sum=0;
sum+=hour*3600+minute*60+second;
return sum;
}
ClockA(int h,int m,int s):hour(h),minute(m),second(s){};
void print();
};
class ClockB:public Clock{
int quarter;
int second;
public:
ClockB(int q,int s):quarter(q),second(s){};
void print();
int getsum() {
int sum=0;
sum+=quarter*15*60+second;
return sum;
}
};
bool cmp(Clock *a,Clock *b){
if(a->getsum()getsum()){
return true;}
else return false;
} 


