Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème avec ma classe Zstring

Sujet résolu
    6 août 2008 à 16:37:38

    Bonjour

    J'en suis a essayer de créer ma classe Zstring tout seul, sauf que bien qu'elle soit pas finis j'ai déja un soucie (je ne met pas le main, y'a rien dedans ça viens pas de la)

    Zstring.h
    class Zstring
    {
        public:
    
        Zstring();
        Zstring(const char *chaine);
        Zstring(const Zstring &copieChaine);
        ~Zstring();
    
        int taille(const char *chaine);
        char copie(const char *chaine);
    
        private:
    
        char *m_chaine;
        int m_taille;
    
    };
    


    et Zstring.cpp :

    Zstring::Zstring() : m_chaine(NULL), m_taille(0)
    {
    }
    
    Zstring::Zstring(const char *chaine)
    {
        m_chaine = copie(chaine);
        m_taille = taille(chaine);
    }
    
    Zstring::Zstring(const Zstring &copieChaine)
    {
        int tailleCopie = taille(copieChaine.m_chaine);
        m_chaine = copie(copieChaine.m_chaine);
        m_taille = tailleCopie;
    }
    
    Zstring::~Zstring()
    {
        delete[] m_chaine;
    }
    
    int Zstring::taille(const char *chaine)
    {
        int compteur = 0, i = 0;
        char charActu = ' ';
    
        while(charActu != '\0')
        {
            charActu = chaine[i];
            i++;
            compteur++;
        }
    
        return compteur;
    }
    
    char Zstring::copie(const char *chaine)
    {
        int tailleChaine = taille(chaine);
    
        char *chaineCopie = new char[tailleChaine + 1];
    
        for(int i = 0 ; i < (tailleChaine) ; i++)
        {
            chaineCopie[i] = chaine[i];
        }
        chaineCopie[tailleChaine] = '\0';
    
        return *chaineCopie;
    }
    


    et voila l'erreur (enfin les 2 même) :

    C++\Zstring\Zstring.cpp||In constructor `Zstring::Zstring(const char*)':|
    C++\Zstring\Zstring.cpp|12|error: invalid conversion from `char' to `char*'|
    C++\Zstring\Zstring.cpp|19|error: invalid conversion from `char' to `char*'|
    ||=== Build finished: 2 errors, 0 warnings ===|


    Vu que cette erreur surviens dé que j'utilise ma fonction copie, je pense que c'est la que ça va pas mais je vois pas du tout pourquoi. En desepoir de cause j'ai regardé la fonction de matéo, je vois pas de différences :/

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      6 août 2008 à 16:44:33

      char copie(const char *chaine);

      Il faudrait que ta fonction copie soit de type char* et qu'elle renvoit un char* au lieu d'un char.
      • Partager sur Facebook
      • Partager sur Twitter
        6 août 2008 à 17:05:04

        Ben chaineCopie c'est un char* pas un char nan ?

        Et puis pourquoi enlever le const, on s'en fou on modifie pas l'argement chaine on le copie juste
        • Partager sur Facebook
        • Partager sur Twitter
          6 août 2008 à 17:08:00

          Tu ne sembles pas avoir compris, alors voici ce qu'il faut que tu fasses :

          char* Zstring::copie(const char *chaine)
          {
              int tailleChaine = taille(chaine);
          
              char *chaineCopie = new char[tailleChaine + 1];
          
              for(int i = 0 ; i < (tailleChaine) ; i++)
              {
                  chaineCopie[i] = chaine[i];
              }
              chaineCopie[tailleChaine] = '\0';
          
              return chaineCopie;
          }
          


          2 étoiles de différence, mais ça change tout.
          • Partager sur Facebook
          • Partager sur Twitter
            6 août 2008 à 17:18:51

            En effet mais quel con >_< raaaa

            Merci beaucoup ^^
            • Partager sur Facebook
            • Partager sur Twitter

            Problème avec ma 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