栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

贵州大学oj C++ 【第八章】虚函数-2

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

贵州大学oj C++ 【第八章】虚函数-2

​实现一个抽象基类Clock,由此派生出类ClockA和ClockB,其中A包含hour,minute,second变量表示时间,而B使用quarter(=15min)和second来表示,输入了n个ClockA类型的对象,m个ClockB类型的对象,它们被统一存放在一个*Clock类型的数组里,现在想要对这个数组按照其中存储的时间长短,由短到长进行排序(排序部分已给出,需要在外部实现cmp函数,如果a的时间比b少,则返回true),排序后输出,输出函数已给出,完善剩余内容  

#include using namespace std; class Clock; bool cmp(Clock *a,Clock *b); //------------------------------------------code here------------------------------------------------ //-------------------------------------------------------------------------------------------------------- void ClockA::print(){cout< v;     int n,m,a,b,c;     Clock* tim;     cin>>n>>m;     while(n--)     {         cin>>a>>b>>c;         tim=new ClockA(a,b,c);//abc代表时分秒         v.push_back(tim);     }     while(m--)     {         cin>>a>>b;         tim=new ClockB(a,b);//a,b代表 刻,秒         v.push_back(tim);     }     sort(v.begin(),v.end(),cmp);     for(auto x:v)x->print(); }

输入描述格式见代码

输出描述格式见代码

只需要提供类的实现

样例输入输出

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;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/989793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号