2016-07-26 3 views
-2

Я пытаюсь объявить ссылку на список int. Когда я компилирую, я получаю ошибку expected '(' for function-style cast or type construction для list<int>& current;, где я объявляю ссылку. В чем проблема? Я посмотрел на все, и это похоже на то, как инициализируется эта ссылка. Должно быть, что-то я пропустил, поскольку он не будет компилироваться.Ошибка при инициализации ссылки

#include <iostream> 
#include <vector> 
#include <list> 

using namespace std; 

int main() { 
    list<int> list; 
    list<int>& current; 
    current = list; // or just list<int>& current = list; both error 
} 
+0

ссылка другое имя объекта, поэтому все ссылки должны быть initilized, вы не можете просто написать: Int & r; вы должны написать ИНТ d; int & r = d; – AnatolyS

ответ

1

Это не то, как вы инициализируете ссылку. Использование:

list<int>& current = <variable>; // list; 

list - плохой выбор имени переменной.

  1. Использование

    list<int> list; 
    

    приведет к ошибке компиляции, так как у вас есть:

    using namespace std; 
    
  2. list будет ужасна имя переменной, даже если вы не использовали

    using namespace std; 
    

Предлагаю удалить строку using namespace std; и использовать другое имя для переменной.

std::list<int> my_list; 
std::list<int>& current = my_list; 
+0

Вы уверены, что это будет работать с именем 'list', переопределенным как объект? –

+0

@ Cheersandhth.-Alf, Нет, я не думаю, что так будет. –

+0

поэтому, когда у меня был 'list & current = list;', это было фактически потому, что 'list' не считался« списком 'Я только что создал, но функция? Просто попробуйте сейчас, и кажется, что если я использую другое имя переменной, оно работает. Это была проблема. Благодаря! –

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