Comment ajouter du texte par surcharge d'opérateur langage C
laurentdav
Messages postés5Date d'inscriptionsamedi 11 avril 2009StatutMembreDernière intervention 9 août 2009
-
6 août 2009 à 14:57
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
7 août 2009 à 23:39
Bonjour,
Je n'arrive pas à programmer mon opérateur + pour pouvoir ajouter du texte.
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 201413 7 août 2009 à 23:39
Salut,
Il faut que ton opérateur concatène le char* contenue dans la chaîne passée en paramètre (chb) le char* de la chaîne courante, contenue dans le membre ch.
Problème, tu ne peux pas concaténé car ch pointe sur une "a tous", figé dans la mémoire.
Il faut donc que tu fasses des allocations et des libérations au niveau de ton char * ch.
Il faut qu'il pointe sur un tableau de char (= new char[length]) alloué dynamiquement par toi.
Ainsi, dans le cas du = ou du constructeur, tu alloues puis fait une copie.
Et dans le cas du +, tu alloues une nouvelle zone, tu concatène dans cette nouvelle zone, et tu libères l'ancienne.
Et tu libères dans le destructeur.
Au fait, il doit y avoir 1 million de classes "chaine" sur le web.