已有类 Time和Date,要求设计一个派生类Birthtime,它是Time和Date的公有派生类,新增一个数据成员childName用于表示小孩的名字,设计主程序显示一个小孩的名字和出生日期时间。
时间: 2023-06-09 09:03:10 浏览: 130
重数标记的形式和含义均列于表中。-C语言 类和对象
好的,您的问题是如何设计一个派生类Birthtime,它是Time和Date的公有派生类,新增一个数据成员childName用于表示小孩的名字,并设计主程序显示一个小孩的名字和出生日期时间。
首先,定义Time和Date类,它们的定义可以如下:
```c++
class Time {
public:
Time(int h = 0, int m = 0, int s = 0);
void setHour(int h);
void setMinute(int m);
void setSecond(int s);
int hour() const;
int minute() const;
int second() const;
private:
int hour_, minute_, second_;
};
class Date {
public:
Date(int year = 1970, int month = 1, int day = 1);
void setYear(int year);
void setMonth(int month);
void setDay(int day);
int year() const;
int month() const;
int day() const;
private:
int year_, month_, day_;
};
```
然后,在这两个类的基础上定义Birthtime类如下:
```c++
class Birthtime : public Time, public Date {
public:
Birthtime(const std::string& childName, int year, int month, int day, int hour, int minute, int second);
const std::string& childName() const;
private:
std::string childName_;
};
Birthtime::Birthtime(const std::string& childName, int year, int month, int day, int hour, int minute, int second)
: Time(hour, minute, second), Date(year, month, day), childName_(childName)
{
}
const std::string& Birthtime::childName() const
{
return childName_;
}
```
在主函数中,可以这样使用Birthtime类:
```c++
int main()
{
Birthtime birthtime("小明", 2020, 1, 1, 0, 0, 0);
std::cout << "小孩名字:" << birthtime.childName() << std::endl;
std::cout << "出生时间:" << birthtime.year() << "-" << birthtime.month() << "-" << birthtime.day() << " "
<< birthtime.hour() << ":" << birthtime.minute() << ":" << birthtime.second() << std::endl;
return 0;
}
```
输出结果如下:
```
小孩名字:小明
出生时间:2020-1-1 0:0:0
```
阅读全文