Partage
  • Partager sur Facebook
  • Partager sur Twitter

Pb avec les .h

    1 septembre 2007 à 15:59:16

    Salut à tout le monde,
    J'ai developpé une application dans un seul fichier main.cpp
    Et puis j'ai essayé de le découpé en plusieurs fichiers, mais j'ai rencontré un petit pb.
    j'ai en fait deux classes et chacune d'eux contient un attribut vector<int> v.
    Mais lors de la compilation, ces deux attributs ne sont pas reconnus seulement dans les fichiers .h !!
    J'ai déja mis le #include <vector> comme dans les .cpp mais ça n'a rien donné.
    help please.
    Merci.
    • Partager sur Facebook
    • Partager sur Twitter
      1 septembre 2007 à 16:09:23

      sans code dur de comprendre d'o% provient ton probleme...
      • Partager sur Facebook
      • Partager sur Twitter
        1 septembre 2007 à 16:14:04

        Oui sans code difficile...
        Vérifie aussi que tu n'a pas oublier #include <iostream>
        • Partager sur Facebook
        • Partager sur Twitter
          1 septembre 2007 à 16:33:45

          Merci pour les réponses rapides.
          J'ai pensé que ça peut être un truc connu.
          Mais bon voia je vais vous montré la classe qui me fais ce pb.
          La vérité j'ai trouvé dans le tuto de c et c++ que peut être ça peut etre std::vector<int> la solution.
          Et ça a marché et ça passe à la compilation.
          Mais j'ai un autre pb maintenant dans l'appel depuis d'autre classes:
          Noeud.h
          1. #include <string>
          2. #include <iostream>
          3. #include <vector>
          4. class Noeud
          5. {
          6.         public:
          7.         std::vector<int> tab1 ; //n° de l’état destinataire
          8.         char a ; //caractère de la transition conduisant à cet état.
          9.         Noeud *suiv1 ; //on utilise une liste chainée.
          10.         Noeud *suiv2 ;
          11.         public:
          12.         Noeud(std::vector<int> tab1,char a);
          13.         Noeud();       
          14. };

          Automate.h
          1. #include <string>
          2. #include <iostream>
          3. #include <vector>
          4. #include "Noeud.h"
          5. class Automate
          6. {
          7.         public:
          8.         int n; //nbre de Noeud
          9.         std::vector<Noeud*> tab;
          10.         public:
          11.         std::vector<Noeud*> init_tab(int m,std::vector<Noeud*> tab);
          12.         void ajouter_noeud(int m,Noeud *e,char c,int k);
          13.         void afficher_liste(Noeud *e);
          14.         void afficher_automate();
          15.         void saisir_Noeud(Noeud *e);
          16.         void enregistrer_fichier();
          17.         std::vector<Noeud*> lire_fichier(QString line,int *x,char *y);
          18.         std::vector<int> chercher_succ(std::vector<int> tab1,char c,char c1);
          19.         std::vector<char> chercher_trans(std::vector<Noeud*> tab,int m,int c);
          20.         bool exist(std::vector<int> tab,int q);
          21.         std::vector<char> chercher_output();
          22.         std::vector<char> chercher_input();
          23.         bool IsPair(int Nb);
          24.         void generer_test();
          25.         void generer_alea();
          26.         int hasard(int min, int max);
          27.         std::vector<char> cherche_input(Noeud *e);
          28.         std::vector<char> cherche_output(Noeud *e);
          29. };
          • Partager sur Facebook
          • Partager sur Twitter
            1 septembre 2007 à 18:01:11

            1. class Noeud
            2. {
            3.         public:
            4.         std::vector<int> tab1 ; //n° de l’état destinataire
            5.         char a ; //caractère de la transition conduisant à cet état.
            6.         Noeud *suiv1 ; //on utilise une liste chainée.
            7. //..............


            tu utilise le type Noeud alors qu'il n'est pas encor definit..(jamais essayé)

            je metterais un prototype de ta class

            1. class Noeud;
            2. class Noeud
            3. {
            4.         public:
            5.         std::vector<int> tab1 ; //n° de l’état destinataire
            6.         char a ; //caractère de la transition conduisant à cet état.
            7.         Noeud *suiv1 ; //on utilise une liste chainée.
            8. //..............


            mais sans nous dire ton probleme je fais sans doute completement fausse route...
            • Partager sur Facebook
            • Partager sur Twitter

            Pb avec les .h

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown