Surcharge operator + c++
Fermé
jujurochedu42
Messages postés
18
Date d'inscription
samedi 7 novembre 2009
Statut
Membre
Dernière intervention
13 janvier 2017
-
31 oct. 2010 à 18:49
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 1 nov. 2010 à 00:03
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 1 nov. 2010 à 00:03
1 réponse
loupius
Messages postés
697
Date d'inscription
dimanche 1 novembre 2009
Statut
Membre
Dernière intervention
31 décembre 2017
148
1 nov. 2010 à 00:03
1 nov. 2010 à 00:03
En supposant que la classe 'CChaine' à comme données membre au moins 'm_size' (longueur de la chaîne sans le caractère terminal) et 'm_chn' (qui contient la chaîne avec le caractère terminal), j'aurais ainsi écrit la surcharge de l'opérateur '+':
CChaine operator+(const char* chn) { CChaine newChn; newChn.m_chn = new char[(newChn.m_size = m_size + strlen(chn)) + 1]; strcpy(newChn.m_chn, m_chn); strcat(newChn.m_chn, chn); return(newChn); }Etant entendu que pour éviter tout problème, j'aurais au moins déclaré un constructeur et un destructeur:
CChaine() { m_size = 0; m_chn = new char[1]; m_chn[0] = 0; } ~CChaine() { delete [] m_chn; }Bonne continuation.