我正在寻找一个如何使用初始化列表的简单示例。这就是我想要做的事情: 我有以下课程:
class foo{
public:
void set_x(const int ix);
void set_y(const int iy);
void display();
private:
int x;
int y;
};
我想以下列方式创建此类的对象:
foo fooObj = {1, 2};
我知道C ++ 11中的vector是可能的。我该如何实现这种行为?
答案 0 :(得分:6)
在这种情况下,一个简单的构造函数将起作用:
foo(int x, int y) : x(x), y(y) {}
如果这个类是一个更简单的聚合(如果数据成员是公共的那么你就是你的那个)那么你甚至不需要它 - 这种初始化方式将初始化每个成员反过来。
对于更复杂的内容,例如vector
,参数的数量可能会有所不同,您需要使用initializer_list
。包括标题:
#include <initializer_list>
和构造函数
foo(std::initializer_list<int>);
该类型就像一个容器,使用begin()
,end()
和size()
函数来访问其内容。