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 :

compilation séparée et vector membre d'une classe


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Par défaut compilation séparée et vector membre d'une classe
    Bonjour, je suis vraiment tout nouveau en c++ et je rencontre une difficulté. J'ai un peu de mal à comprendre comment utiliser la compilation séparée. Plus que des explications théoriques, j'aimerais avoir un exemple que je pourrai imiter de ce qu'il faut faire avec les fichiers .h et .cpp (jusqu'à maintenant je faisais un peu au hasard en priant pour que ça compile !)

    En particulier, je n'arrive pas à déclarer un vector en tant que membre d'une classe en dehors du fichier contenant le main.

    Par exemple j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //Fichier point.h
    #ifndef POINT_H
    #define POINT_H
    class point
    {
      int x;
      int y;
      public :
        void affiche();
        void initialise(int abs, int ord);
    };
    #endif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Fichier point.cpp
    #include <iostream>
    #include "point.h"
     
    using namespace std;
     
    void point::initialise(int abs, int ord)
    {
      x=abs;
      y=ord;
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //Fichier polygone.h
    #ifndef POLYGONE_H
    #define POLYGONE_H
    class polygone
    {
      vector<point> sommet;
      public :
        void ajouterSommet(point);
        void ajouterSommet(int x, int y);
    };
    #endif
    J'obtiens alors comme erreurs (sur Dev-Cpp) :
    "ISO C++ forbids declaration of 'vector' with no type"
    "expected ';' before '<' token"
    "[Build Error] [polygone.o] Error 1"

    Que faire ? Aurai-je des précautions à prendre quant à la gestion de la mémoire à cause de l'utilisation du vector ?

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Le problème est que ton compilateur ne connait pas vector losqu'il utilise ton fichier polygone.h

    Essaye ceci (les modifs sont en rouge) :
    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
     
    //Fichier polygone.h
    #ifndef POLYGONE_H
    #define POLYGONE_H
    #include <vector>
    #include "point.h"
    
    class polygone
    {
      std::vector<point> sommet;
      public :
        void ajouterSommet(point);
        void ajouterSommet(int x, int y);
    };
    #endif
    Au fait, avoir des fichiers qui s'appellent point.h et .cpp ainsi qu'une classe qui s'appelle point, cela risque de provoquer des collisions. Utilise des noms un peu moins génériques.
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Par défaut
    Merci beaucoup, ça fonctionne

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 12/07/2010, 14h25
  2. Objet vector<Type> membre d'une classe
    Par Chewbi dans le forum SL & STL
    Réponses: 3
    Dernier message: 16/02/2006, 17h12
  3. Pointeur sur des fonctions membres d'une classe
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 15/02/2006, 11h35
  4. [VB.NET]Reflexion lister les membres d'une classe ...presque
    Par lucie.houel dans le forum ASP.NET
    Réponses: 19
    Dernier message: 20/09/2005, 13h49
  5. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15

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