2017-02-06 3 views
0

Я новичок, некоторые не знают, почему эта ошибка, как она должна выглядеть?Ошибка ArrayList: недопустимый конструктор;

Весь код: http://pastebin.com/6j0H0wEN

Его источником реализации кода на ArrayList:

error: expected ',' or '...' before '&&' token

error: invalid constructor; you probably meant 'ArrayList (const ArrayList&)' In constructor 'ArrayList::ArrayList()':

ArrayList<T> (const ArrayList<T> & that) : capacity_(that.capacity_), size_(that.size_) { 
    data_ = new T[capacity_]; 
    memcpy(data_, that.data_, sizeof(T) * size_); 
} 

ArrayList<T> (const ArrayList<T>&& that) : capacity_(that.capacity_), size_(that.size_) { 
    data_ = that.data_; 
    that.data_ = nullptr; 
} 
+0

Именно то, что говорит ошибка: вам не нужно : 'ArrayList (const ArrayList & that)' вместо этого в порядке. –

+0

Это все еще плохо. ошибка: недопустимый конструктор; вы, вероятно, имели в виду «ArrayList (const ArrayList &) ' В конструкторе' ArrayList :: ArrayList() ': –

+0

Мне на самом деле жаль комментировать перед тестированием, здесь я попробовал ваш код из компиляции с помощью pastebin с помощью C++ 14 : [link] (http://ideone.com/UYRLwV) выглядит как все в порядке. –

ответ

0

Вы, вероятно, хотите, чтобы второй конструктор быть

ArrayList<T> (ArrayList<T>&& that) 

, без const. В противном случае вы не можете украсть содержимое списка that.


О, а также, если вы на самом деле использовать c++98 вы не имеете перемещение конструкторов вообще.

0

Rvalue ссылки в C++ 98 не собираются работать; период. Их не существует.

Смежные вопросы