Не могу push_front () стандартный список библиотек с моими объектами в C ++ - PullRequest
0 голосов
/ 21 мая 2009

У меня есть класс, и я хотел бы использовать стандартный список библиотек для хранения их списка. Я принципиально хочу push_front () список. Итак, мой код такой:

#include <list>
/* ... lots of stuff ...*/

complexNode myObject();

std::list<complexNode> complexList();

myList.push_front(myObject);

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

ошибка: запрос на член 'push_front' в 'complexList', который имеет неклассный тип ‘std :: list > () ()’

Класс complexNode имеет конструктор копирования.

Я действительно не понимаю проблемы и что на самом деле означает эта ошибка ... пожалуйста, помогите!

Ответы [ 2 ]

6 голосов
/ 21 мая 2009
std::list<complexNode> complexList();

это не должно быть:

std::list<complexNode> complexList; // without the () 
4 голосов
/ 21 мая 2009

Это:

std::list<complexNode> complexList();

Имеет общее имя " самый неприятный синтаксический анализ C ++ ". Короче говоря, вы сделали complexList объявлением функции, которая возвращает список, вместо локальной переменной. Удалите (), тогда он не может быть проанализирован как функция.

...