Ошибка компиляции при инициализации LinkedList - PullRequest
1 голос
/ 30 марта 2020

На Arduino, при попытке сохранить объекты в LinkedList я получаю ошибку компиляции. У меня есть следующее определение:

    class Step {
      public:
          int DISTANCE = 0;
          long TIME = 0; 

    };

l oop, в котором я пытаюсь заполнить список:

LinkedList<Step*> myList = LinkedList<Step*>();  

void create(int SCHRITTE, long ZEIT, int NUMBER)
{  
  for(int i=0 ; i < NUMBER ; i++)
  {
   Step* i = new Step();   //get error on this line.
   i->DISTANCE = SCHRITTE;
   i->TIME = ZEIT;
   myList.add(i);
  }
}

Но это приводит к ошибкам компиляции:

ERROR:
note: 'int i' previously declared here

   for(int i=0 ; i < NUMBER ; i++)


31:10: error: redeclaration of 'Step* i'

    Step* i = new Step();

Ответы [ 2 ]

2 голосов
/ 30 марта 2020

Нельзя назначать разные типы значений одной и той же переменной. Например, в вашем коде в области l oop переменная i уже определена для процесса l oop. Измените имя объекта Step, который вы пытаетесь назначить.

Надеюсь, это поможет.

1 голос
/ 31 марта 2020

Я думаю, что в вашем логе есть ошибка c: Вот основные команды c для списков (в зависимости от вашего варианта использования):

LinkedList<Step*> steps  = LinkedList<Step*>();
//store step
steps.add(new Step(SCHRITTE, ZEIT ); 

// retrieve data from the list
steps.get(i)->toWhateverFunctionOrArray;

// iterate through the list 
for (uint8_t i = 0; i < steps.listsize(); i++) { 
steps.get(i)->toWhateverFunctionOrArray;
... 
}
void create(int SCHRITTE, long ZEIT, int NUMBER){  
   for(int i=0 ; i < NUMBER ; i++) { // this adds i steps all with the same SCHRITTE and ZEIT
  steps.add(new Step(SCHRITTE, ZEIT ));
  }
}

или только для добавления одного определенного step

void createSingle(int SCHRITTE, long ZEIT){  
  steps.add(new Step(SCHRITTE, ZEIT );
}

Я использую эту концепцию в течение нескольких лет в сложных приложениях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...