使用VC6打开考生文件夹下的工程test15_3。此工程包含一个test15_3.cpp,其中定义了类Time和Timex,Timex公有继承Time,但定义并不完整。请按要求完成下列操作,将程序补充完整。
(1)完成类Time构造函数的定义,将数据成员hours和minutes分别初始化为参数new_hours和new_minutes的值。请在注释“//**1**”之后添加适当的语句。
(2)完成类Timex的构造函数的定义,注意参数的传递。请在注释“//**2**”之后添加适当的语句。
(3)请按时间格式“hour:minute”和“hour:minute:second”分别输出对象time1和time2所表示的时间,注意必须使用已经定义的成员函数。请在注释“//**3**”之后添加适当的语句。
输出结果如下:
20:30
10:45:34
注意:除在指定的位置添加语句外,请不要改动程序中的其他语句。
源程序文件test15_3.cpp清单如下:
#include<iostream.h>
class Time
public:
Time(int new_hours,int new_minutes)
// ** 1 **
int get_hours();
int get_minutes();
protected:
int hours,minutes;
;
int Time::get_hours()
return hours;
int Time::get_minutes()
return minutes;
class Timex:public Time
public:
Timex(int new_hours,int new_minutes,int new_seconds);
int get_seconds();
protected:
int seconds;
;
// ** 2 **
seconds=new_seconds;
int Timex::get_seconds()
return seconds;
void main()
Time time1(20,30);
Timex time2(10,45,34);
// ** 3 **
参考答案:
(A)
hours=new_hours;
minutes=new_minutes;
(B)
Timex::Timex(int new_hours,int new_minutes,
int new_seconds):Time(new_hours,new_minutes)
(C)
cout<<timeA.get_hours()<<":"<<timeA.get_minutes()<<endA;
cout<<timeB.get_hours()<<":"<<timeB.get_minutes()<<":"<<timeB.get_seconds()<endl;
解析:
本题主要考查考生对于类和派生类构造函数的定义以及成员函数的使用,注意(2)中派生类构造函数中必须包括向基类传递参数的调用,应该使用参数列表完成这一操作。