操作题   请使用VC6或使用[答题]菜单打开考生文件夹proj1下的工程proj1。此工程中包括类Date(“日期”)和主函数main的定义。程序中位于每个“//ERROR ****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应为:
    2006-1-1
    2005-12-31
    2005-12-31
    2006-1-1
    注意:只修改每个“//ERROR ****found****”下的那一行,不要改动程序中的其他内容。
    #include <iostream>
    using namespace std;

    class Date {
    public:
    Date(int y=2006, int m=1, int d=1)
    // ERROR ********* found*********
    : year=y, month=m, day=d
    {}
    /ERROR ********* found*********
    Date (const Date d)
    {
    this->year=d.year;
    this->month=d.month;
    this->day=d.day;
    }
    void print () const
    {
    cout << year << '-' << month << '-'<< day << endl;
    }
    private:
    //ERROR ********* found*********
    int year (2006), month(1), day(1);
    };
    int main ()
    {
    Date d1, d2 (2005, 12, 31), d3;
    d1.print ();
    d2.print();
    d3=d2;
    d2=d1;
    d1=d3;
    d1.print();
    d2.print();
    return 0;
    }
 
【正确答案】:year(y), month(m), day(d) Date(const Date &d) int year, month, day;
【答案解析】[考点] 本题考查的是Date类,其中涉及构造函数、复制构造函数和成员函数。 (1)主要考查考生对构造函数的掌握,使用成员列表初始化。 (2)主要考查考生对复制构造函数的掌握,复制构造函数的形参使用引用调用。 (3)主要考查考生对私有成员的掌握,私有成员只能声明不能定义初始值。