可以使用多个参数构建类的构造函数吗?

时间:2019-04-24 17:28:49

标签: c++

我想要一个构造函数,以便可以这样构建我的对象:Student student(age, first, last, email),然后将使用我的setter函数来构建该对象。这样一来,我可以用一行漂亮的代码来设置该对象所需的所有变量。

下面应该使我想做的事情更加清楚:

这是我设想的构造函数,以便在另一个函数中可以构建对象并已设置值。

Student s(age, first, last);

-

Student::Student(int age, string first, string last) {
   setAge(age);
   setFirst(first);
   setLast(last);
}

很长一段时间以来,我都没有使用像cpp这样的硬语言,所以我希望这对于你们所有人来说都不是太基本。

1 个答案:

答案 0 :(得分:1)

正如许多注释中所建议的那样,C ++确实允许这样做,因此您应该使用成员初始化器列表。

class Student
{
    public:

    Student(int age, std::string const& firstName, std::string const& lastName)
    : m_age(age)
    , m_firstName(firstName)
    , m_lastName(lastName) 
    {

    }

    private:

    int m_age;
    std::string m_firstName;
    std::string m_lastName;
};

然后您可以像这样构造一个学生:

Student s(21, "Jane", "Doe");