Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C++] compiler séparément une classe.

Aidez moi avant que mon ordi ne passe par la fenetre...

    14 avril 2006 à 23:01:39

    Salut ! :)

    J'ai un probleme avec ma classe.
    Pour vous montrer, j'ai créé un projet sous code::block avec 3 fichiers :

    main.cpp
    #include <iostream>
    #include "test.h"

    int main()
    {
        test a(1) ;
            return 0;
    }


    test.h
    class test
    {
        private :
            int x ;

        public :
            test(int) ;
    } ;


    test.cpp
    test::test(int valeur)
    {
        x=valeur ;
    }



    Voila. On peut pas plus simple !!
    Mais il y une erreur de compilation. Pour que ça marche, je doit virer le fichier test.cpp et mettre la définition de la fonction test dans main.cpp. Et ça c'est pas pratique.

    J'ai essayé un fichier .a, .dll ... Sans résultat.

    Que faire ???
    Je doit creer un module objet, il me semble...

    Mais comment ??
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      14 avril 2006 à 23:07:55

      il faut inclure test.h dans test.cpp
      • Partager sur Facebook
      • Partager sur Twitter
        14 avril 2006 à 23:13:21

        YEEEEAAAAAAAHHHH !!!! :D:D:D:D:D

        merci !! :):):):)

        Pour aller plus loin, tu pourrai me dire comment creer un module objet ? :o
        • Partager sur Facebook
        • Partager sur Twitter
          15 avril 2006 à 0:04:13

          T'entends quoi par module objet ?
          • Partager sur Facebook
          • Partager sur Twitter
            15 avril 2006 à 10:53:30

            Je sais pas ! Je lit le bouquin sur le C++ de Claude Delannoy, et il me dit qu'il faut fournir au programmer un header et un module objet qu'il incorporera au moment de l'édition des lien de son propre programme.

            Mais au fait, si je met l'include test.h dans test.cpp ET dans main.cpp, ça ne pose pas de probleme de surdéfinition de fonctions strictement identiques ?
            • Partager sur Facebook
            • Partager sur Twitter
              15 avril 2006 à 14:48:33

              Citation : simboubou

              Je sais pas ! Je lit le bouquin sur le C++ de Claude Delannoy, et il me dit qu'il faut fournir au programmer un header et un module objet qu'il incorporera au moment de l'édition des lien de son propre programme.


              Les module objet ce sont les .obj que ton IDE ou GCC fais pendant la compilation tu na pas vraiment besoin de te soucier de ca.

              Citation : simboubou


              Mais au fait, si je met l'include test.h dans test.cpp ET dans main.cpp, ça ne pose pas de probleme de surdéfinition de fonctions strictement identiques ?


              pour etre sur tu na qua mettre des:
              #ifndef TEST_H
              #define TEST_H


              #endif
              • Partager sur Facebook
              • Partager sur Twitter
                15 avril 2006 à 20:36:14

                D'acord. Mais là je ne le fais pas, et ça marche ! Mieux : si je ne l'inclu pas dans le 2 fichiers, il plante à la compilation !
                • Partager sur Facebook
                • Partager sur Twitter

                [C++] compiler séparément une classe.

                × 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