Почему компилятор не видит этот заголовок функции? - PullRequest
2 голосов
/ 06 декабря 2010

Мой заголовок функции такой:

void FileIO::write(LinkedList<Librarian>& librarians, int numlibrarians,
                   LinkedList<Patron>& patrons, int numpatrons,
                   LinkedList<LinkedList<Item> >[] items, int numitems,
                   int currid)

Заголовок в моем .h это:

void write(LinkedList<Librarian>&, int, LinkedList<Patron>&, int,
           LinkedList<LinkedList<Item> >[], int, int);

И все же, когда я пытаюсь скомпилировать свою программу, я получаю эту ошибку:

FileIO.cpp:923: error: prototype for ‘void FileIO::write(
LinkedList<Librarian>&, int, LinkedList<Patron>&, int,
LinkedList<LinkedList<Item> >*)’ does not match any in class ‘FileIO’

С чего бы это? Кажется, что каждый из моих заголовков, куда я положил > >[], не распознается. Есть ли другой способ сделать это?

Ответы [ 3 ]

2 голосов
/ 06 декабря 2010

Это C ++, поэтому LinkedList<LinkedList<Item> >[] items не имеет смысла, так как это конструкция Java.На самом деле, парсер выполняет раннюю бомбардировку, думая, что [] - это какой-то токен, который действительно странный.Замените на LinkedList<LinkedList<Item> > items[] и все будет хорошо.

2 голосов
/ 06 декабря 2010

Попробуйте изменить

LinkedList<LinkedList<Item> >[] items

до

LinkedList<LinkedList<Item> > items[]
0 голосов
/ 06 декабря 2010

Похоже, что в функции write() в строке 923 отсутствуют два целочисленных параметра, которые необходимы для того, чтобы она соответствовала объявлениям.

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