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

Visual C++ Discussion :

POO + surdéfinition d'opérateur - Visual Studio


Sujet :

Visual C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut POO + surdéfinition d'opérateur - Visual Studio
    Bonjour,

    Quand je veux faire une surdéfinition de l'opérateur "<<" et que dans celle-ci je veux accéder à des données membres, il me dit que je ne peux pas (cannot access private member, un truc du genre). Je travaille avec Visual Studio 6.0 et avec le Visual Studio .net, ça marche.

    Que faut-il que je fasse ?
    Pourtant j'utilise bien la syntaxe correcte :
    friend ostream& operator<<(ostream &, colis &);


    Merci !

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Salut

    C'est un bug de VC6, il y a un patch pour ça je crois. Ou alors il faut mettre le corps de la fonction directement lors de sa définition.

  3. #3
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Je me souviens qu'il y avait quelques petits problèmes avec les surcharge (*) de << sous VC.

    Au choix, définis-toi des accesseurs, une fonction membre publique d'affichage (qui sera utilisée par op<<), ou alors déclare et définis en-ligne en une fois l'opérateur d'injection.

    (*) Bannis "surdéfinition" de ton vocabulaire. Tout le monde n'utilise par ce mot pour désigner le même concept (certains bouquins et profs l'utilisent pour la surcharge (overload) ; ceux qui connaissent le C++ et à qui il ne viendrait jamais à l'idée d'utiliser autre chose que surcharge pour désigner la surcharge, assimilent "surdéfinition" à "redéfinition"/"supplantation" (override).)

    PS: tu as oublié le const =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::ostream & operator<<(std::ostream &, colis const &)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. News Visual Studio
    Par farscape dans le forum Visual C++
    Réponses: 34
    Dernier message: 27/04/2010, 10h21
  2. [IDE] Visual Studio 2005 Express
    Par Louis-Guillaume Morand dans le forum Général Dotnet
    Réponses: 130
    Dernier message: 23/12/2006, 15h08
  3. Visual Studio .Net et template
    Par Sphax dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 17/07/2004, 16h33
  4. Probleme d'utilisation de directX 9 avec visual studio.net
    Par cranedoeuf dans le forum DirectX
    Réponses: 1
    Dernier message: 24/05/2004, 04h33
  5. Version de Windows dans Visual Studio !!!
    Par Jasmine dans le forum MFC
    Réponses: 3
    Dernier message: 18/03/2004, 17h40

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