C++ 初始化列表的简单示例
我正在寻找一个如何使用初始值设定项列表的简单示例。以下是我想做的: 我有以下课程:C++ 初始化列表的简单示例,c++,c++11,initializer-list,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+
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是可能的。如何实现这种行为?在这种情况下,一个简单的构造函数将起作用:
foo(int x, int y) : x(x), y(y) {}
如果该类是一个更简单的聚合(如果数据成员是公共的,则您的聚合将是公共的),那么您甚至不需要它-这种初始化方式将依次初始化聚合的每个成员
对于一些更复杂的问题,如vector
,其中参数的数量可能会有所不同,您需要使用初始值设定项\u列表
。包括标题:
#include <initializer_list>
#包括
还有一个构造器
foo(std::initializer_list<int>);
foo(std::初始值设定项列表);
该类型就像一个容器,使用
begin()
、end()
和size()
函数来访问其内容。常规的双参数构造函数可以正常工作,如果它是聚合类型,则完全不需要任何操作即可foo
是一个聚合。对不起,我在示例中犯了一个错误。变量应该是私有的。