是否可以使用多个参数构建类的构造函数

Can a constructor for a class be built with multiple parameters?

本文关键字:构建 构造函数 参数 可以使 是否      更新时间:2023-10-16

我想要一个构造函数,以便我可以这样构建我的对象: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 这样的硬语言很长时间了,所以我希望这对你们来说不是太简陋。

正如许多注释中所建议的,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");