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

MFC Discussion :

surcharge << >> - pb compilation


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut surcharge << >> - pb compilation
    bonjour,

    j'utilise .net 2003
    j'ai une classe chaine (chaine.h, chaine.cpp) et un main (je fais cette classe dans un but pédagogique). quand je compile, j'obtiens 15 erreurs que j'arrive pas a corriger. Pourriez vous m'aider svp ?

    chaine.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /*ligne 28*/ friend ostream& operator << (ostream & os, const chaine& ch2);
    /* ligne 29*/ friend istream& operator >> (istream & is, chaine& ch2);
    chaine.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ostream & chaine::operator << (ostream & os, const chaine & ch2)
    {
        return os << ch2.text;
    }
     
    istream & chaine::operator >> (istream & is, chaine & ch2)
    {
        char text[255];
        is >> text;
        ch2.modifier(text);
        return *this;
    }
    main
    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
    int _tmain()
    {
                         chaine texte1;
    	             chaine texte2;
                   	     texte1 = "texte1";
    /*ligne 15*/	cout<<"texte1 : "<<texte1;
    /*ligne 16*/    cout<<"texte2 : "<<texte2;
      	             texte2 = "texte2";
    	             texte2 = texte1;
    	             texte2.changetext("nouveau texte2");
    /*ligne 20*/    cout<<"variable1 : "<<texte1;
    /*ligne 21*/    cout<<"variable2 : "<<texte2;
                         system("PAUSE");
           	             return 0;
    }
    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
    chaine.h(28) : error C2143: syntax error : missing ';' before '&'
    chaine.h(28) : error C2433: 'ostream' : 'friend' not permitted on data declarations
    chaine.h(28) : error C2501: 'ostream' : missing storage-class or type specifiers
    chaine.h(28) : error C2143: syntax error : missing ',' before '&'
    chaine.h(28) : error C2501: 'chaine::operator`<<'' : missing storage-class or type specifiers
    chaine.h(29) : error C2143: syntax error : missing ';' before '&'
    chaine.h(29) : error C2433: 'istream' : 'friend' not permitted on data declarations
    chaine.h(29) : error C2501: 'istream' : missing storage-class or type specifiers
    chaine.h(29) : error C2143: syntax error : missing ',' before '&'
    chaine.h(29) : error C2501: 'chaine::operator`>>'' : missing storage-class or type specifiers
    la videotheque.cpp(15) : error C2065: 'cout' : undeclared identifier
    la videotheque.cpp(16) : error C3861: 'cout': identifier not found, even with argument-dependent lookup
    la videotheque.cpp(20) : error C3861: 'cout': identifier not found, even with argument-dependent lookup
    la videotheque.cpp(21) : error C3861: 'cout': identifier not found, even with argument-dependent lookup
    chaine.cpp
    chaine.cpp(141) : fatal error C1010: unexpected end of file while looking for precompiled header directive
    la ligne 141 est la derniere ligne. je mets rien a la fin... et j'ai une erreur, je comprends pas. Le fichier .cpp se termine par } de la derniere fonction.

    merci beaucoup...
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <iostream>
    using namespace std;
    mets ceci dans le .h avant d'utiliser "cout".

    Au lieu de déclarer tout le namespace, tu peux te limiter uniquement à ce que tu as besoin, par exemple:

    idem pour "ostream"

  3. #3
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    salut, merci pour la reponse.

    voila ce qu'il y avait dans mon code, j'ai encore rien changé :

    chaine.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #include "chaine.h" 
    #include <cstring>
    #include <iostream> 
    using namespace std;
    main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include "stdafx.h"
    #include "chaine.h"
    #using <mscorlib.dll>
     
    using namespace System;
    j'ai ajouté
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <iostream>
    using namespace std;
    dans le .h, je pensais pas qu'on pouvais le faire...

    compilation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    chaine.h(30) : error C2143: syntax error : missing ',' before '&'
    chaine.h(30) : error C2805: binary 'operator <<' has too few parameters
    chaine.h(31) : error C2143: syntax error : missing ',' before '&'
    chaine.h(31) : error C2805: binary 'operator >>' has too few parameters
    la videotheque.cpp(15) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'chaine' (or there is no acceptable conversion)
    la videotheque.cpp(16) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'chaine' (or there is no acceptable conversion)
    la videotheque.cpp(20) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'chaine' (or there is no acceptable conversion)
    la videotheque.cpp(21) : error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'chaine' (or there is no acceptable conversion)
    chaine.cpp
    chaine.cpp(140) : fatal error C1010: unexpected end of file while looking for precompiled header directive
    merci beaucoup
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    raaaah encore:
    fatal error C1010: unexpected end of file while looking for precompiled header directive
    ça fait au moins 10 fois que je vois ce pb depuis la semaine derniere .
    voir post it faq:
    http://www.developpez.net/forums/vie...59308&start=75

  5. #5
    Membre émérite Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Par défaut
    oui... je l'ai ajouté. et pour les autres ?
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/03/2013, 21h30
  2. Compiler la surcharge de l'opérateur new
    Par mutagling dans le forum Langage
    Réponses: 1
    Dernier message: 24/06/2010, 07h24
  3. Réponses: 2
    Dernier message: 17/10/2009, 20h49
  4. surcharge opérateur erreur compilation
    Par damien77 dans le forum C++
    Réponses: 8
    Dernier message: 21/02/2007, 17h59
  5. compilation g++ et surcharge de l'operateur =
    Par lionel50 dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 19/12/2006, 20h48

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