我正在尝试使用类来存储日期(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();