c++中类构造函数中的列表初始化

List initialisation in a class constructor in C++

本文关键字:列表 初始化 构造函数 c++      更新时间:2023-10-16

我是c++的新手,如何为向量创建构造函数让我很困惑。我有一个这样的类:

class myClass{
public:
    myClass();
    ......
private:
    std::vector<double> myVariable;
    ......
}

,我想为

写一个构造函数
myClass{1.2, 2.0, 3.1, 4.0};

我该怎么做?

您需要一个接受std::initializer_list的构造函数:

explicit myClass(std::initializer_list<double> init) : myVariable(init) {}

您可以首先创建一个vector,向其插入元素,将其传递给myClass构造函数,它将其分配给类成员vector:

class myClass
{
public:
    myClass(const std::vector<double> &src)
        : myVariable(src)
    {
    }
    private:
        std::vector<double> myVariable;
};
int main()
{
    std::vector<double> myvect{1.2, 2.0, 3.1, 4.0};
    myClass obj(myvect);
}