0

我正在尝试初始化一个对象数组。这似乎在 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);}

编译器文档提到:

ARM 编译器支持初始化列表和统一初始化,但标准库不提供std::initializer_list. 可以使用用户提供的std::initializer_list初始化列表和统一初始化实现。

如何为我的用例定义初始化列表?

4

0 回答 0