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 704
    Points
    2 704
    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 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    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
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

+ 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