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 :

extra qualification error


Sujet :

C++

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Par défaut extra qualification error
    Bonjour, voici l'erreur que le terminal m'affiche pour chacune des fonctions de ma classe Tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    erreur: extra qualification 'Tableau::'
    erreur : 'Tableau::Tableau(int, int)' cannot be overloaded
    Voici mon fichier .h :
    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
    #ifndef _Tableau_H_
    #define _Tableau_H_
    #include <cmath>
    #include <iostream>
    #include <string>
     
    #include "CPiece.h"
    #include "CBloc.h"
    #include "CPoint.h"
    #include "ExceptionTableauVide.h"
     
    using namespace std;
     
    class Tableau
    {
    	private :
    		int Colonnes;
    		int Lignes;
    		Bloc **blocs;
    		static int NbBlocs;
     
    	public :	
    		Tableau(int Lignes=12, int Colonnes=10);
    		~Tableau();
    		int getColonnes() const;
    		int getLignes() const;
    		Bloc getBlock(int x, int y) const;
    		bool intersection(Piece p);
    		void ajouter(Piece p);
    		void nettoyer();
    		void afficher();
    		static int getNbBlocs();
    		Tableau& operator=(const Tableau& p){
     
    };
    et voici mon fichier.cpp

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    #include "CTableau.h"
    #include "CPiece.h"
    #include "CBloc.h"
    #include "ExceptionTableauVide.h"
     
    int Tableau::NbBlocs = 0;
     
    Tableau::Tableau(const int lignes, const int colonnes){
    	// code
    }
     
    Tableau::~Tableau(){
    	// code
    }
     
    int Tableau::getLignes() const{
    	return Lignes;
    }
     
    int Tableau::getColonnes() const{
    	return Colonnes;
    }
     
    Bloc Tableau::getBlock(int x, int y) const{  // x doit appartenir à sx et idem pour y
     
    	// code
    }
     
    bool Tableau::intersection(Piece p){
     
    	// code
    }
     
    void Tableau::ajouter(Piece p){
    	// code
    }
     
    void Tableau::nettoyer(){
     
    	// code	
    }
     
    void Tableau::afficher(){
             // code
    }
     
    int Tableau::getNbBlocs(){
    	return NbBlocs;
    }
     
    Tableau& Tableau::operator=(const Tableau& p){
    	// code	
    }
    Je comprends ce que veulent dire les erreurs mais je ne comprends pas d'où elles viennent. Quelqu'un pour m'aider ?

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Tu dois avoir un problème dans un de tes #includes qui fait qu'il ne voit pas la déclaration de ta classe (un problème d'inclusion croisée ?). Fait un test rapide, si tu copies/colle la définition de ta classe juste avant la définition du constructeur, est-ce que ça marche ?

    Après, trouver l'erreur exacte est moins facile. Déjà, je supprimerais les headers inutiles (par exemple, dans ton .h, pas besoin de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include "CPiece.h"
    #include "CBloc.h"
    #include "CPoint.h"
    #include "ExceptionTableauVide.h"
    ; mais éventuellement à remplacer par des déclaration des classes).

    Au fait, je suppose qu'il s'agit d'une fausse manip, mais tu as oublié un #endif à la fin de ton header.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre émérite

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par défaut
    Bonsoir, et les parametres du constructeur; const pour le fichier source et non pour le header.

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Par défaut
    C'est bon c'était juste une faute de frappe sur ma surcharge de l'opérateur + dans mon .h. J'ai mis un } (merci le copier-coller) au lieu d'un ;
    Merci pour vos réponses.

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Ca t'apprendra à copier coller

    Par ailleurs évite absoluement les using namespace dans un en-tête.
    Surtout qu'en l'occurence, il ne sert pas.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/08/2011, 21h23
  2. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46
  3. [Kylix] Kylix c++ error
    Par pacpac dans le forum EDI
    Réponses: 2
    Dernier message: 10/06/2003, 16h27
  4. [CR] Print Engine error text
    Par afaraji dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2002, 15h44
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

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