问题 问答题

使用VC6打开考生文件夹下的工程MyProj1。此工程包含千个源程序文件 MyMainl.cpp,其中定义了用于表示日期的类Date,但类Date的定义并不完整。请按要求完成下列操作,将类Date的定义补充完成: ①定义私有数据成员year、month和day分别用于表示年、月、日,它们都是int型的数据。请在注释“//**1**”之后添加适当的语句。 ②完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1, day=1,请在注释“//**2**”之后添加适当的语句。 ③完成重载构造函数Date(int y, int m, int d)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值,请在注释“//**3**”之后添加适当的语句。 ④完成成员函数print的类外定义,使其以“年-月-日”的格式将Date对象的值输出到屏幕上。请在注释“//**4**”之后添加适当的语句。 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件MyMain1.cpp清单如下: //MyMainl. cpp #include <iostream> using namespace std; class Date { public: //* * 2 * * Date(int y, int m, int d) {//* * 3 * * } void print() const; private: //data member //* * 1 * * }; void Date: :print () const { //* * 4 * * } int main ( ) { Date national_day(1949,10,1); national_day.print(); return 0; }

答案

参考答案:

解析:①int year, month, day; ②Date(){year=1;month=1;day=1;} ③year=y;month=m;day=d; ④cout<<year<<"年"<<month<<"月"<<day<<"日"<<end1; 这是一道综合应用题,主要考核类的定义。 ①定义私有数据成员year、month和day分别用于表示年、月、日,它们都是int型的数据,所以在第1处填入:“int year, month, day;”。 ②完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1,day=1。 根据以上要求可知,类Date的默认构造函数为:“Date(){year=1;month=1;day=1}:”。 ③完成重载构造函数Date(int y, int m, int d)的定义,把数据成员year、month和day分别初始化为参数y、m和d的值。其实也就是给私有成员year、month和day赋值。 所以在第3处应填入:“year=y;month=m;day=d;”。 ④完成成员函数print的类定义,使其以“年-月-日”的格式将Date对象的值输出到屏幕上。函数print的功能是输出Date对象的值,此处主要考核C++的格式化输出。 所以在第4处应该填入:“cout<<year<<"年"<<month<<"月"<<day<<"日"<<end1;”。

判断题
单项选择题