我必须编写一个代码,当用户输入3个整数时,该代码将输出带格式的日期,但还要输出默认日期为1/1/2019。我应该为此使用一个类和对象,但是我不知道如何在没有从对象传递任何参数的情况下使其工作。这是我当前的代码
class Date
{
private:
int defaultDay = 1;
int defaultMonth = 1;
int defaultYear = 2019;
public:
Date()
{
int day = defaultDay;
int month = defaultMonth;
int Year = defaultYear;
}
void dateFormat(int day,int month,int year)
{
defaultDay = day;
defaultMonth = month;
defaultYear = year;
cout << day << "/" << month << "/" << year << endl;
}
}
int main()
{
Date setDate,
int day, month, year;
cin >> day;
while(day < 1 || day > 31)
{
cout << "Please enter a number between 1 and 31" << endl;
cin >> day;
}
cin >> month;
while(month < 1 || month > 12)
{
cout << "Please enter a number between 1 and 12" << endl;
cin >> month;
}
cin >> year;
setDate.dateFormat(day, month, year);
return 0;
}
答案 0 :(得分:1)
我将对您的代码进行最少的更改,以向您展示一些您可以做的事情。
class Date
{
private:
int day = 1;
int month = 1;
int year = 2019;
public:
// Default constructor with no arguments.
Date()
{
}
// Constructor with arguments.
Date(int _day, int _month, int _year)
{
day = _day;
month = _month;
year = _year;
}
//print me.
void print() const {
cout << day << "/" << month << "/" << year << endl;
}
}
Date firstDate(); // Will use defaults
Date secondDate(1, 11, 2019); // November 11, 2019
这就是我所做的...首先,我重命名了您的字段。除非有其他原因,否则不需要defaultDay等。
接下来,我给了您两个构造函数,一个没有参数(称为默认构造函数),另一个有参数。只要签名不同,类就可以具有任意数量的构造函数。
然后我制作了一种打印方法。
我希望这会有所帮助。