//定义日期类Date和日期时间类DateTime,
//能够把Date类对象转换成DateTime类对象,
//能够把DateTime类对象转换成Date类对象
#include <iostream>
class DateTime;
class Date
{
public:
Date() = default;
Date(int y, int m, int d);
~Date() = default;
operator DateTime();
void ShowDate();
private:
int year;
int month;
int day;
};
Date::Date(int y, int m, int d) :year(y), month(m), day(d)
{
}
void Date::ShowDate()
{
std::cout << year << "年" << month << "月" << day << "日" << std::endl;
}
class DateTime
{
public:
DateTime() = default;
DateTime(int y, int m, int d, int h, int mi, int s);
~DateTime() = default;
operator Date();
void ShowDateTime();
private:
int year;
int month;
int day;
int hour;
int minute;
int second;
};
DateTime::DateTime(int y, int m, int d, int h, int mi, int s)
:year(y), month(m), day(d), hour(h), minute(mi), second(s)
{
}
DateTime::operator Date()
{
Date d(year, month, day);
return d;
}
void DateTime::ShowDateTime()
{
std::cout << year << "年" << month << "月" << day << "日 "
<< hour << ':' << minute << ':' << second << std::endl;
}
Date::operator DateTime()
{
DateTime dt(year, month, day, 0, 0, 0);
return dt;
}
int main(void)
{
Date d1(2019, 6, 9);
DateTime dt1 = DateTime(d1);
dt1.ShowDateTime();
DateTime dt2(2008, 10, 12, 13, 0, 0);
Date d2 = Date(dt2);
d2.ShowDate();
return 0;
}