c++中类构造函数中的列表初始化
List initialisation in a class constructor in C++
我是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);
}
相关文章:
- 复制列表初始化的隐式转换的等级是多少
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- C++11 中的混合列表初始化
- 我可以列表初始化 std::vector 并完美转发元素吗?
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- C++20 从括号中的值列表初始化聚合,不支持内部数组
- 如何在向量列表初始化时避免对象复制以及如何延长临时的生存期
- 默认参数和空列表初始化
- 如何在列表初始化中放置额外的语句?
- C++列表初始化允许多个用户定义的转换
- 列表初始化是否将原子初始化为零
- 使用可变模板列表初始化数组,并放置new
- 使用整数初始化列表初始化长双精度的向量
- 直接列表初始化的自动规则
- 使用初始化列表初始化unique_ptr的容器,继续
- 如何修复"非聚合无法使用初始值设定项列表初始化" <map>
- 直接列表初始化和复制列表初始化之间的差异
- 为什么我可以在不使用赋值运算符的情况下使用列表初始化普通数组
- C++ - 使用类中的初始值设定项列表初始化动态集