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 :

string class implementation


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Ing�nieur d�veloppement de composants
    Inscrit en
    F�vrier 2022
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement de composants
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : F�vrier 2022
    Messages : 3
    Par d�faut string class implementation
    Bonjour,

    Je d�bute dans la programmation C++ et pour m'entrainer un peu, j'ai voulu implementer la class string avec quelques fonctions.
    J'ai quelques soucis avec la classe +.
    Je sais que le probl�me vient surement du pointeur mais je n'arrive pas � le resoudre.
    Mon constructeur est "impos�" avec un const char*.
    Donc je voulais savoir si j'ai rat� un truc et quelle est la meilleure solution pour avoir en sortie un string concatener. (je sais que c'est pas la meilleure solution, pour l'instant je veux juste avoir en retour un string concatener)
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        MyString operator +(MyString a){
            int al = a.length();//length() deja implementé 
            int bl = this->length();
            char * charRes = new char [al+bl+1];
            for (int i = 0; i <= bl; i++) {
                  charRes[i] = this->m_string[i];     
                 }
                    for (int i = bl+1; i <= bl+al+1; i++) {
                 charRes[i] = a.m_string[i-(bl+1)];
                            }
         MyString res(charRes);
     
        return res ;
        }

  2. #2
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Tu as le droit de dire quel est le probl�me, parce que "j'ai un probl�me" ou "�a marche pas", �a n'a jamais donn� beaucoup d'infos.
    Ensuite, t'as rat� un sacr� truc, le chapitre 0 des tableaux qui dit qu'on it�re sur [0, length-1] sur un tableau de taille length.
    Parce qu'autant ta premi�re boucle va juste copier le \0, autant la seconde va overflow et le const char* final va �tre coup� parce qu'il s'arr�te probablement sur le premier \0 rencontr�.
    Faudrait aussi g�rer la m�moire, parce que �a sent la fuite un peu partout.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  3. #3
    Candidat au Club
    Femme Profil pro
    Ing�nieur d�veloppement de composants
    Inscrit en
    F�vrier 2022
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement de composants
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : F�vrier 2022
    Messages : 3
    Par d�faut
    Merci pour la r�ponse rapide.
    Alors le probl�me exacte est que lorsque j'affiche "charRes", j'ai bien mes deux string concaten�s. Mais lorsque j'appelle la fonction dans le main, je n'ai que un string qui apparait. Est ce aussi un probl�me de m�moire ? Car je n'ai pas 'limpression que �a overflow. Je me trompe surement mais bon.

  4. #4
    Expert confirm�
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 772
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 772
    Par d�faut
    Ton probl�me est trivial

    En recopiant ta premi�re cha�ne de 0 � bl inclus, tout simplement tu recopies le caract�re sentinelle '\0'.
    � v�rifier, mais tu recopies bl + 1 caract�res puis al + 1 : donc il doit y avoir 1 d�passement

    Et ton code, c'est 95% du C ... inutile parce qu'il existe des fonctions comme memset ou strcpy.

  5. #5
    Candidat au Club
    Femme Profil pro
    Ing�nieur d�veloppement de composants
    Inscrit en
    F�vrier 2022
    Messages
    3
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement de composants
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : F�vrier 2022
    Messages : 3
    Par d�faut
    Bonjour,
    Oui vous avez raison, c'est un probl�me de capacit�.
    Pour tout ce qui est strcpy, je voulais justement faire sans mais quand je change le +1, �a marche.
    Je vous remercie pour votre aide !

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 3
    Dernier message: 04/04/2007, 08h45
  2. [Reflection] Obtenir toutes les classes implémentant une interface
    Par Pill_S dans le forum API standards et tierces
    R�ponses: 4
    Dernier message: 20/04/2005, 16h48
  3. [RMI] Probleme pour retrouver la classe implement�e.
    Par Koko22 dans le forum API standards et tierces
    R�ponses: 2
    Dernier message: 16/09/2004, 19h15
  4. [Reflection] Classes implémentant une interface
    Par thibaut dans le forum API standards et tierces
    R�ponses: 17
    Dernier message: 29/07/2004, 14h57
  5. [VB6] Classe Implements
    Par Goldust dans le forum VB 6 et ant�rieur
    R�ponses: 7
    Dernier message: 13/07/2003, 16h41

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