2010-12-06 44 views
2

Ma tête de la fonction est la suivante:Pourquoi le compilateur ne voit-il pas cet en-tête de fonction?

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

L'en-tête dans mon .h est la suivante:

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

Et pourtant, lorsque je tente de compiler mon programme, je reçois cette erreur:

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’ 

Pourquoi cela serait-il? Il semble que chacun de mes en-têtes où je mets > >[] n'est pas reconnu. Y a-t-un autre moyen de faire ça?

+0

Veuillez mettre des nouvelles lignes dans vos blocs de code. – robert

Répondre

2

C'est C++ si LinkedList<LinkedList<Item> >[] items n'a pas de sens puisque c'est une construction de Java. En fait, l'analyseur bombarde tôt, pensant que le [] est un signe qui est en effet étrange. Remplacez par LinkedList<LinkedList<Item> > items[] et vous devriez être bon.

+0

En effet. J'ai pris Java deux derniers semestres puis ce semestre ils m'ont transféré en C++. C'est la fin du semestre et je ne me suis toujours pas habitué à la syntaxe. Merci à tous ceux qui ont répondu. –

2

Essayez de changer

LinkedList<LinkedList<Item> >[] items 

à

LinkedList<LinkedList<Item> > items[] 
0

Il semble que la fonction write() à la ligne 923 manque deux paramètres entiers qui sont nécessaires pour faire correspondre les déclarations.

+0

Je pense que les paramètres 'int' manquants reflètent que le compilateur a interrompu l'analyse de la fonction quand il a vu et n'a pas pu donner de sens à' [] items' et pas que les 'int' manquaient dans le code. Au moins, j'espère que l'affiche originale parle de la bonne ligne de code. – robert

+0

@robert: c'est une possibilité ... –