如何从数组初始化对象数组?

时间:2019-05-14 11:56:01

标签: c++ arrays arduino

我有一个常量字节数组。从该数组,我想初始化一个对象数组。我尝试了以下代码,但没有产生预期的结果。

const byte VALUES [] = {1, 2, 3};

class MyClass {
    public:
        MyClass(byte value) {
            _value = value;
        }
    private:
        byte _value;
};

MyClass myObjects[] = {VALUES};

我设法通过使用以下代码来做到这一点:

const byte VALUES [] = {1, 2, 3};

class MyClass {
    public:
        MyClass() {}
        MyClass(byte value) {
            _value = value;
        }
    private:
        byte _value;
};

MyClass *myObjects = new MyClass[3];

for (byte i = 0; i < 3; i++) {
    myObjects[i] = MyClass(VALUES[i]);
}

有没有更优雅的方法来初始化对象数组?最好没有循环且构造函数为空。

1 个答案:

答案 0 :(得分:0)

您可以使用std :: array来执行此操作。无需手动阵列管理。

std::array<MyClass, 3> ma = {1, 2, 3};