Эквивалент Котлина для массива классов С ++

Я пытаюсь найти Kotlin эквивалент создания массива классов в C ++

class Widget {
public:
int x;
float w;
}

Widget data[100];

0

Решение

Если у тебя есть class Widget объявлено, вы можете создать массив из 100 Widgetвот так:

val data = Array(100) { Widget() }

Array Конструктор принимает два аргумента. Первый аргумент — это размер массива, второй — функция инициализации для создания его элементов. В этом примере я просто вызываю конструктор по умолчанию Widget,

Кроме того, эта функция инициализации получает индекс создаваемого элемента в качестве параметра, если он вам нужен для создания ваших элементов.

Редактировать: @ Miha_x64 сделал несколько хороших замечаний в комментарии выше, поэтому я также включу некоторые из них здесь.

Вы также можете создать массив, не создавая элементов для немедленного добавления в него, используя arrayOfNulls,

val nullableWidgets = arrayOfNulls<Widget>(100)

Это даст вам Array<Widget?> вместо Array<Widget>и инициализировать все элементы массива null,

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]