我正在尝试使用继承创建日期和时间类。
父类Date的变量为月,日和年。
Date派生类DateTime具有相同的变量,但增加了小时,分钟和秒。创建DateTime实例后,必须将其传递给Date实例,并带有可选参数hour,minute和second。 Date参数是必需的。如果未传递可选参数,则将应用默认值0。
有没有更有效的方法来实现这一目标?我觉得通过使用Date实例中的函数为新的DateTime实例检索参数来重新设置参数很繁琐。
DateTime::DateTime(Date passDate){
day = passDate.getDay();
month = passDate.getMonth();
year = passDate.getYear();
hour = 0;
minute = 0;
second = 0;
}
DateTime::DateTime(Date passDate, int hourSet){
day = passDate.getDay();
month = passDate.getMonth();
year = passDate.getYear();
hour = hourSet;
minute = 0;
second = 0;
}
DateTime::DateTime(Date passDate, int hourSet, int minuteSet){
day = passDate.getDay();
month = passDate.getMonth();
year = passDate.getYear();
hour = hourSet;
minute = minuteSet;
second = 0;
}
最佳答案
您可以调用父类的构造函数和默认参数值,以使代码更加简洁:
DateTime::DateTime(const Date& passDate, int hourSet = 0, int minuteSet = 0):
Date(passDate) {
hour = hourSet;
minute = minuteSet;
second = 0;
}