2009-08-02 5 views
1

J'ai donc un problème ....

J'ai une méthode
void MainWindow :: loadItems (const ArticleStore & magasin)
{}


que j'essaie d'appeler comme ça dans la classe MainWindow
ArticleStore store();
loadItems (magasin)

Et je reçois cette erreur
mainwindow.cpp: 15: Erreur: pas de fonction concordante pour appel à 'mainWindow :: loadItems (ArticleStore (&)())'
mainwindow.h : 19: Note: Les candidats sont: void MainWindow :: loadItems (const ArticleStore &)
définition ArticleStore:
classe ArticleStore
{
public:
ArticleStore();
}; Donc, la question est de savoir ce qui s'est mal passé?Erreur lors du passage d'un objet par référence

+0

pourriez-vous aussi poster un code source? Il semble que vous ayez foiré quelque chose dans l'appel. –

+0

avez-vous plusieurs définitions de ArticleStore peut-être? –

+0

Veuillez ne pas essayer de formater votre code en utilisant des balises HTML. Utilisez le bouton 1010 au-dessus de l'éditeur. –

Répondre

8

Il est parce que

ArticleStore store(); 

est interprété par le compilateur comme une déclaration de fonction. Ce Expliquons pourquoi compilateur recherche ‘MainWindow::loadItems(ArticleStore (&)())’ Vous devez écrire à la place:

Article store; // With no parenthesis 
1
ArticleStore store; loadItems(store); 

Remarquez l'absence de parenthèses après le nom. Le compilateur confond votre version en tant que prototype de fonction pour une fonction appelée store, ne prenant aucun argument et renvoyant une instance ArticleStore. Ensuite, vous passez ce pointeur de fonction à la fonction suivante qui ne fonctionne pas.

Questions connexes