Partage
  • Partager sur Facebook
  • Partager sur Twitter

Création de la classe Zstring

J'essaie de le faire sans suivre le tuto mais j'ai un soucis pour la compilation

Sujet résolu
    4 avril 2008 à 22:43:00

    Bonsoir à tous !

    En fait j'essai de réaliser la classe Zstring sans suivre les aides du tp histoire de progresser un maximum et je suis bloqué, en fait ça ne compile pas mais pas de message du style error on line X.

    Voici le log d'error:

    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : C:\Users\Marco\Desktop\prog\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.cpp
    Linking console executable: C:\Users\Marco\Desktop\prog\console.exe
    .objs\Zstring.o:Zstring.cpp:(.text+0x100): multiple definition of `Zstring::chaine(char*)'
    .objs\main.o:main.cpp:(.text+0x100): first defined here
    .objs\Zstring.o:Zstring.cpp:(.text+0x126): multiple definition of `Zstring::contenu()'
    .objs\main.o:main.cpp:(.text+0x126): first defined here
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)


    Mon projet est composé de trois fichiers:

    main.cpp


    1. #include <iostream>
    2. #include <string.h>
    3. #include "Zstring.cpp"
    4. int main()
    5. {
    6.     char test[] = "Kikoolol";
    7.     Zstring ma_chaine;
    8.     ma_chaine.chaine(test);
    9.     std::cout << ma_chaine.contenu() << std::endl;
    10.         return 0;
    11. }


    Zstring.cpp


    1. #include "ZString.h"
    2. /*Zstring::Zstring()
    3. {
    4.     m_longueur = 0;
    5. }*/
    6. void Zstring::chaine(char *chaine) // creer/modifie une chaine
    7. {
    8.     m_longueur = strlen(chaine); // pour mettre dans m_longueur la longueur de ma chaine
    9.     m_chaine = chaine;
    10. }
    11. char* Zstring::contenu() // renvoi le contenu de la chaine
    12. {
    13.     return m_chaine;
    14. }


    Zstring.h


    1. #ifndef DEF_ZSTRING
    2. #define DEF_ZSTRING
    3. #include <iostream>
    4. using namespace std;
    5. class Zstring
    6. {
    7.     public:
    8.         //Zstring();
    9.         void chaine(char *chaine);
    10.         char *contenu();
    11.     private:
    12.         char *m_chaine; // Tableau de caractères (contiendra la chaîne)
    13.         int m_longueur; // Longueur de la chaîne
    14. };
    15. #endif


    En vous remerciant d'avance pour les futures réponses !! :D

    Bonne soirée !
    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2008 à 23:53:57

      c'est normal, tu inclues le .cpp alors qu'il faut inclure le .h
      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2008 à 23:59:22

        Exact, dans ton main.cpp il faut inclure le fichier "ZString.h" et non le .cpp ^^
        • Partager sur Facebook
        • Partager sur Twitter
          5 avril 2008 à 0:18:16

          Ah voui :) ben je vous remercie et bonne nuit !!!
          • Partager sur Facebook
          • Partager sur Twitter

          Création de la classe Zstring

          × 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