【发布时间】:2018-11-02 11:53:39
【问题描述】:
我知道,我可以像这样初始化数据。
int array[3] = { 1, 2, 3 };
甚至
int array[2][2] = { {1, 2}, {3, 4} };
我也可以用std::vector来做
std::vector<int> A = { 1, 2, 3 };
假设我想编写自己的类:
class my_class
{
std::vector< int > A;
public:
//pseudo code
my_class(*x) { store x in A;} //with x={ {1, 2}, {3, 4} }
// do something
};
是否可以编写这样的构造函数,怎么可能?这是什么声明
{{1, 2}, {3, 4}}到底在做什么?
我总是发现,你可以用这种方式初始化数据,但从来没有精确地做什么。
【问题讨论】:
-
写一个接受
std::initializer_list作为参数的ctor。 -
我想,就是这样,谢谢,我不知道list_initialization这个词,所以我找不到它。
标签: c++ class c++11 constructor stdinitializerlist