在C ++中,有没有一种方法可以让我不传递参数而拥有函数?

时间:2019-11-01 14:08:06

标签: c++

我必须编写一个代码,当用户输入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;
}

1 个答案:

答案 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等。

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

然后我制作了一种打印方法。

我希望这会有所帮助。