在C++中,有没有一种方法可以让我在不传递参数的情况下拥有一个函数



我必须编写一个代码,当用户输入3个整数时输出格式化日期,但也输出2019年1月1日的默认日期。我应该使用一个类和对象来实现这一点,但如果没有从对象传递任何参数,我就不知道如何让它工作。这是我当前的代码

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;
}

我将对您的代码进行最小的更改,向您展示一些您可以做的事情。

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等,除非你有其他原因。

接下来,我给了您两个构造函数,一个没有参数(称为默认构造函数(,另一个有参数。只要签名不同,类可以有任意多的构造函数。

然后我做了一个打印方法。

我希望这能有所帮助。

最新更新