问题 问答题

使用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=A;month=A;day=A;}

③year=y;month=m;day=d;

④cout<<year<<"年"<<month<<"月"<<day<<"日"<<endA;

解析:

这是一道综合应用题,主要考核类的定义。

①定义私有数据成员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;”。

单项选择题
单项选择题