IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

No matching function for call to 'Joueur::Joueur'


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut No matching function for call to 'Joueur::Joueur'
    Bonsoir à toutes et tous .
    J'ai recréé ce petit morceau de code qui me renvoie une erreur que je ne comprends pas .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    void Fenetre::ouvrir() {
        QString monFichierSav = monFichier;
        monFichier = QFileDialog::getOpenFilename(this, QString("Sélectionnez un fichier"), QString(), "Fichier  *.txt;;Tous les fichiers*");
            if(monFichier .isEmpty());
                monFichier = monFichierSav; }
                else {
                QFile fichier(monFichier);
                    if(fichier.open(QIODevice::ReadOnly  | QIODevice::Text)) {
                        groupe.clearAllJoueur();
                        listeHeaderFollow.clear();
                        modele->clear();
     
                    int compteur = 0;
                    QString texte;
                    QStringList data;
                    QTextStream flux(&fichier);
     
                    while(!flux.atEnd()); {
                        texte = flux.readLine();
                        if(computer == 0) {
                            listeHeaderFollow = texte.split(":");
                            compteur++;
                        } else {
                            data = texte.split(":");
                            Joueur  *joueur = new Joueur(data[0],data[1]);
                            for(int i = 2; i < data.size(); i++) {
                                joueur->insertColonne(data[i]); }
                            groupe.addJoueur(joueur); }
                    }
                fichier.close();
                groupe.trierParScore();
                groupe.trier();
                disconnect(modele, SIGNAL(itemChanged(QStandardItem*)),this , SLOT(action(QStandardItem*)));
                modele->setHorizontalHeaderLabels(listHeader + listeHeaderFollow);
                chargerDansTableModele();
                if(!actionEnregistrer->isEnabled() {
                    actionEnregistrer->setEnabled(true); }
                connect(modele, SIGNAL(itemChanged(QStandardItem*)),this , SLOT(action(QStandardItem*))); }
                else {
                    QMessagebox::critical(this , "Erreur" , "Impossible de charger les informations du fichier" + monFichier); }
                }
            }
    Message d'erreur ligne 26 ? :

    no matching function for call to 'Joueur::Joueur(QString&,QString&)'

    Merci d'avance .

    Cordialement.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2009
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 1 009
    Points : 1 738
    Points
    1 738
    Par défaut
    Pourquoi tu vas pas à la ligne que l'erreur t'indique (double clic dessus) ? Pas besoin de tout ce code pour voir qu'il manque une parenthèse pile à l'endroit indiqué par l'erreur, ça doit d'ailleurs être souligné en rouge partout. Je pars du principe que tu utilises Qt Creator bien sûr.

    Edit : Et sinon est-ce qu'il existe ce constructeur Joueur(QString&, QString&) ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut no matching
    Bonjour à toutes et tous .

    Merci @Troudhil . Pour la parenthèse c'est une erreur de re-copiage .

    Le constructeur , il doit ce trouver dans 'fenetre.h' ou 'joueur.h' ?? .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class Joueur {
             public : Joueur(QString nom); // J'ai écrit cela car cela me renvoie une erreur sur cette ligne
    Bon je doit dire une grosse bêtise ??? *@ ..?

    Cordialement.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Le constructeur étant celui de ta classe Joueur, il serait judicieux de placer sa déclaration dans joueur.h et sa définition dans joueur.cpp
    En ce qui concerne ton erreur, dans la ligne Joueur *joueur = new Joueur(data[0],data[1]);, tu rentres dans ton constructeur deux arguments de type QString (data[0] et data[1]) alors que comme tu nous le montres, tu ne l'as déclaré que pour un seul argument. Il te faudra donc avoir un constructeur du genre:
    Code joueur.h : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    class Joueur {
        public: Joueur(QString nom, QString autre);
    };
    Qui surchargera ou remplacera selon ton besoin celui déjà mis en place.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 182
    Points : 61
    Points
    61
    Par défaut no matching
    Bonjour à toutes et tous .

    @Winjerome , Merci .

    Oui , bien sur , j'ai compris , je doit mettre un seul argument .

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/01/2012, 15h34
  2. Réponses: 2
    Dernier message: 05/08/2011, 19h13
  3. Réponses: 8
    Dernier message: 09/07/2010, 17h02
  4. no matching function for call
    Par pimousse280187 dans le forum Linux
    Réponses: 1
    Dernier message: 06/06/2009, 22h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo