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 :

Erreur : ISO C++ forbids declaration of 'uneclasse', une solution ?


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Erreur : ISO C++ forbids declaration of 'uneclasse', une solution ?
    Voici le .h où apparait l'erreur :
    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
    #ifndef __eleve__
    #define __eleve__
    #include <vector>
    #include "personne.h"
     
    using namespace std;
     
    class CEleve : public CPersonne
    {
        protected :
            vector<double> note;
        public :
            CEleve(string, string, unsigned int);
            void ajouterNote(double);
            unsigned int nombreNotes();
            double lireNote(unsigned int);
            double calculerMoyenne();
            void test();
            bool operator<(CEleve);
            friend std::ostream &operator<<(std::ostream&, const &CEleve);
    };
     
    #endif
    Voici ce que m'affiche le compilateur :
    error: ISO C++ forbids declaration of 'CEleve' with no type
    L'erreur se situe sur la ligne 20 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    friend std::ostream &operator<<(std::ostream&, const &CEleve);
    Je précise que je ne fais pas une dépendance cyclique (si c'est bien comme ça que ça se dit), c'est à dire que personne.h n'appelle pas eleve.h

    J'ai testé en incluant <cstdlib> <cstdio> et <iostream> à mon .h

  2. #2
    screetch
    Invité(e)

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut
    Citation Envoyé par Launster Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    friend std::ostream &operator<<(std::ostream&, const &CEleve);
    Ne faudrait-il pas mettre l'esperluette après CEleve ?...

    EDIT : grilled by screetch

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 434
    Points : 654
    Points
    654
    Par défaut
    Bonjour,

    Met l'operator en dehors de ta classe

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Effectivement... Merci pour vos réponses, je commençais à désespérer... Au moins je la ferai pas deux fois.

    C'est bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    friend std::ostream &operator<<(std::ostream&, const CEleve&);
    et pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    friend std::ostream &operator<<(std::ostream&, const &CEleve;)

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Pour être tout à fait juste, il faut savoir que le mot clé const s'applique, normalement, à ce qui se trouve à sa gauche sauf si rien ne précède (auquel cas, il s'applique à ce qui suit).

    Idéalement il faudrait donc écrire plutôt Maclass const & car, bien que const MaClass & soit valide, tu te places (du point de vue théorique du moins) dans la situation de l'excetion

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

Discussions similaires

  1. ISO C++ forbids declaration of 'Point with no type'
    Par fab87 dans le forum Débuter
    Réponses: 2
    Dernier message: 13/05/2011, 08h58
  2. ISO C++ forbids declaration of SHA1
    Par ikuzar dans le forum Débuter
    Réponses: 6
    Dernier message: 21/02/2011, 11h42
  3. ISO C++ forbids declaration
    Par inddzen dans le forum C++
    Réponses: 17
    Dernier message: 20/01/2008, 18h23
  4. Réponses: 9
    Dernier message: 15/02/2005, 13h26
  5. Declaration Type ds une procedure
    Par Qwazerty dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2002, 09h09

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