完成CTime时间类和CDate日期类的设计,使得主程序能够正确运行。 时间类CTime,CDate日期类由CTime时间类公有派生

完成CTime时间类和CDate日期类的设计,使得主程序能够正确运行。
时间类CTime包含私有成员数据时(hour)分(minute)秒(second),均为int类型。
CDate日期类由CTime时间类公有派生而来,包含私有成员数据年(year)月(month)日(day),均为int类型。

输入:1949 10 1 16 28 37
输出:
Function #1 is called!
[T1]9:10:11
Function #3 is called!
……


#include <iostream>
#include <iomanip>
using namespace std;

class CTime {
private:
    int hour;
    int minute;
    int second;
public:
    CTime(int h = 0, int m = 0, int s = 0) {
        hour = h;
        minute = m;
        second = s;
    }
    void print() const {
        cout << setw(2) << setfill('0') << hour << ":"
             << setw(2) << setfill('0') << minute << ":"
             << setw(2) << setfill('0') << second;
    }
};

class CDate : public CTime {
private:
    int year;
    int month;
    int day;
public:
    CDate(int y = 0, int m = 0, int d = 0, int h = 0, int mi = 0, int s = 0) 
        : CTime(h, mi, s) {
        year = y;
        month = m;
        day = d;
    }
    void print() const {
        cout << "[T1]";
        CTime::print();
        cout << endl;
    }
};

int main() {
    int y, m, d, h, mi, s;
    cin >> y >> m >> d >> h >> mi >> s;
    CDate date(y, m, d, h, mi, s);
    cout << "Function #1 is called!\n";
    date.print();
    cout << "Function #3 is called!\n";
    return 0;
}

在此示例中,CTime时间类和CDate日期类都是使用C++语言编写的,其中CTime定义了时间类的私有成员hour、minute和second,以及print()方法用于打印时间。CDate从CTime公有派生而来,定义了日期类的私有成员year、month和day,并使用构造函数初始化时间和日期。CDate还定义了print()方法,该方法使用基类CTime的print()方法打印时间,并在前面添加了[T1]标识符表示这是一个类型为1的函数。

在主程序中,首先读入年、月、日、时、分、秒等时间信息,然后使用CDate类创建一个日期对象。接下来,调用date对象的print()方法打印时间。最后,输出一条消息表示Function #3被调用。

  • 这篇博客: 关于时间的函数,让你成为掌控时间的强者中的 ctime 函数:把日历时间转换成字符串 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 使用asctime函数时,我们为了把time_t型的日历时间转换成tm 结构体的分解时间,需要实现调用localtime 函数。这样一来,把日历时间转换成字符串就需要两个步骤了,未免太过于繁琐。ctime 函数就不一样了,只需一步便可!

    //time04
    
    #include <stdio.h>
    #include <time.h>
    
    int main()
    {
    	time_t current = time(NULL);
    
    	printf("当前日期和时间:%s", ctime(&current));
    
    	return 0;
    }

    ctime 表如下:

    ctime
    头文件#include <time.h>
    格式char *ctime(const time_t *timer);
    功能把timer指向的日历时间转换成与asctime函数具有相同字符串形式的本地时间,相当于asctime(localtime(timer))
    返回值返回以分解时间为实际参数的asctime函数返回的指针