初始值设定项列表的简单示例

Simple example of an initializer list

本文关键字:简单 列表      更新时间:2023-10-16

我正在寻找如何使用初始值设定项列表的简单示例。以下是我想做的:我有以下课程:

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 中使用矢量是可能的。我怎样才能实现这种行为?

在这种情况下,一个简单的构造函数将起作用:

foo(int x, int y) : x(x), y(y) {}
如果

类是一个更简单的聚合(如果数据成员是公共的,你的聚合将是你的),那么你甚至不需要它 - 这种初始化方式将依次初始化聚合的每个成员。

对于更复杂的东西,例如 vector ,参数的数量可能会有所不同,您需要使用 initializer_list .包括标题:

#include <initializer_list>

和一个构造函数

foo(std::initializer_list<int>);

该类型的作用类似于容器,具有begin()end()size()函数来访问其内容。