введите "List < dynamic >" не является подтипом типа 'List < Widget >'

Вы всегда можете создать массив указателей, указывая на объекты автомобилей, а затем создать объекты в цикле for, как вы хотите, и сохранить их адрес в массиве, например:

#include <iostream>
class Car
{
private:
  Car(){};
  int _no;
public:
  Car(int no)
  {
    _no=no;
  }
  void printNo()
  {
    std::cout<<_no<<std::endl;
  }
};
void printCarNumbers(Car *cars, int length)
{
    for(int i = 0; i<length;i++)
         std::cout<<cars[i].printNo();
}

int main()
{
  int userInput = 10;
  Car **mycars = new Car*[userInput];
  int i;
  for(i=0;i<userInput;i++)
      mycars[i] = new Car(i+1);

примечание новый способ !!!

  printCarNumbers_new(mycars,userInput);


  return 0;
}    

Все, что вам нужно изменить в новом методе, - это обработка автомобилей как указателей, чем статических объектов в параметре, и при вызове метода printNo (), например:

void printCarNumbers_new(Car **cars, int length)
{
    for(int i = 0; i<length;i++)
         std::cout<<cars[i]->printNo();
}

на конец main хорош, чтобы удалить всю динамически распределенную память, подобную этой

for(i=0;i<userInput;i++)
  delete mycars[i];      //deleting one obgject
delete[] mycars;         //deleting array of objects

Надеюсь, я помог, ура!

30
задан vbandrade 17 June 2018 в 04:24
поделиться

1 ответ

Можно Бросить динамический Список для Списка С определенным типом:

List<'YourModel'>.from(_list.where((i) => i.flag == true));
0
ответ дан 27 November 2019 в 16:40
поделиться