初始化列表的简单示例

时间:2014-12-05 17:11:38

标签: c++ c++11 initializer-list

我正在寻找一个如何使用初始化列表的简单示例。这就是我想要做的事情: 我有以下课程:

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是可能的。我该如何实现这种行为?

1 个答案:

答案 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()函数来访问其内容。