我正在尝试初始化对象数组。在Keil中,使用 armcc 编译器以及--cpp11标志,这似乎失败了。
以下是我的课程Wheel
,稍后将在Vehicle类中使用。
class Wheel
{
public:
Wheel(const uint8_t diameter);
private:
uint8_t m_diameter;
};
Vehicle
类使用Wheel数组,这些数组在构造函数中初始化。我想像这样理想地初始化它:
class Vehicle
{
public:
Vehicle();
private:
Wheel wheels[3];
};
//in Wheel.cpp
// Constructor
Vehicle::Vehicle()
: wheels{Wheel(3),Wheel(4),Wheel(5)}
{}
另一个选择是初始化构造函数主体中的所有内容,例如:
Vehicle::Vehicle(){
wheel[0] = Wheel(3);
wheel[1] = Wheel(4);
wheel[2] = Wheel(5);}
编译器documentation提到:
ARM编译器支持初始化程序列表和统一初始化,但是标准库不提供
std::initializer_list
的实现。通过用户提供的std::initializer_list
初始化程序列表实现,可以使用统一的初始化程序。
如何为用例定义一个初始化列表?