0

我正在尝试使用类来存储日期(MM DD YYYY)进行练习。我有两个类构造函数,一个默认将 Date 值设置为默认值,另一个使用从main()我的驱动程序文件中发送的显式值。

main()但是,在我的驱动程序文件中的显式值构造函数(to make )中的声明语句之后date2,我收到了似乎表明date2从未生成的错误。

以下是此构造函数的相关部分。我如何才能date2被定义并声明用于其他事物main()

标题

class Date
{
    private:
        int month, day, year;
    public:
        Date(); // default date constructor will assign all data members to equivalent of 01/01/2022
        Date(int initMonth, int initDay, int initYear); //parametered Date constructor will collectively set all three data members
}

执行

Date :: Date(): month(1), day(1), year(2022) {}
Date :: Date(int initMonth, int initDay, int initYear)
{
    if (initMonth < 1 || initMonth > 12) { cerr << "Invalid month\n\n"; month = -2; }
    if (initDay < 1 || initDay > 30) { cerr << "Invalid day\n\n"; day = -2; }
    if (initYear < 1) { cerr << "Invalid year\n\n"; year = -2; }
    month = initMonth;
    day = initDay;
    year = initYear;
}

司机

Date date1;
do
    {
        cout << "Please enter a date in this sequence: MM DD YYYY ";
        cin >> month >> day >> year;
        Date date2(month, day, year);
    } while (date2.month == -2 || date2.day == -2 || date2.year == -2);
    date1.print();
    date2.print();
4

0 回答 0