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

How to initialize an array of objects from an array?

本文关键字:数组 初始化 对象      更新时间:2023-10-16

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

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]);
}

是否有其他优雅的方法来初始化对象的数组?没有循环和空构造函数,最好是。

您可以使用std ::数组来做。这里无需在这里手动阵列管理。

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