c++ 设计一个类层次,基类为Date,从Date分别派生出ShortE、MediumDate和LongDate.他们各自有成员函数print(),输出当前日期。

文章描述了一个C++程序,定义了一个基类Date,然后派生出ShortE、MediumDate和LongDate三个类,每个类重写了print()函数以按不同格式输出日期。Date类使用当前时间初始化日期,而派生类则改变了日期的显示样式,ShortE以日-月-年的顺序显示,MediumDate使用英文缩写月份,LongDate使用完整英文月份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计一个类层次,基类为Date,从Date分别派生出ShortE、MediumDate和LongDate.他们各自有成员函数print(),输出当前日期。

Date输出日期格式为:04-14-2018

ShortE输出日期格式为:14-04-2018

MediumDate输出日期格式为:Apr.14,2018

LongDate输出日期格式为:April 14, 2018

class Date{

protected:

int year,month,day;

};

#include<iostream>
#include<ctime>
#include<string> 
using namespace std;
class Date{
    public:
         Date(){
             tm *t;
             time_t t1=time(0);
             t=localtime(&t1);
             year=t->tm_year+1900;
             month=t->tm_mon+1;
             day=t->tm_mday;    
    } 
    void print(){
         cout<<"Date:"<<month<<"--"<<day<<"--"<<year<<endl;
     } 
    protected:
        int year,month,day;     
};    
class ShortE:public Date{
    public:
        void print()
        {
            cout<<"ShortE:"<<day<<"--"<<month<<"--"<<year<<endl;
        }
};
class MediumDate:public Date{
 public:
   void print(){
    string a[12]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
    cout<<"MediumDate:"<<a[month-1]<<"."<<day<<","<<year<<endl;
    }           
};
class LongDate:public Date{
    public:
        void print(){
            string a[12]={"January ","February ","March ","April ","May ","June ",
            "July ","August ","September ","October ","November ","December "};
            cout<<"LongDate:"<<a[month-1]<<day<<","<<year<<endl;
        }        
};
int main()
{
    Date a;
    ShortE b;
    MediumDate c;
    LongDate d;
    a.print() ;
    b.print() ;
    c.print() ;
    d.print() ;

    return 0;
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值