Surcharge operator + c++
jujurochedu42
Messages postés
22
Statut
Membre
-
loupius Messages postés 789 Statut Membre -
loupius Messages postés 789 Statut Membre -
Bonjour,
je dois concatener deux chaines de caractères sans utiliser de strings....
J'ai donc surcharger mon operateur + mais je n'arrives pas à faire fonctionner.
CChaine CChaine::operator+(const char* message)
{
int taillemessage;
int tailletotal;
taillemessage=strlen(message);
tailletotal=m_size+taillemessage;
char*chn=new char[tailletotal+1];
strcpy(chn,message);
CChaine Chainecomplete=chn;
return chn;
}
je dois concatener deux chaines de caractères sans utiliser de strings....
J'ai donc surcharger mon operateur + mais je n'arrives pas à faire fonctionner.
CChaine CChaine::operator+(const char* message)
{
int taillemessage;
int tailletotal;
taillemessage=strlen(message);
tailletotal=m_size+taillemessage;
char*chn=new char[tailletotal+1];
strcpy(chn,message);
CChaine Chainecomplete=chn;
return chn;
}
A voir également:
- Surcharge operator + c++
- Surcharge lnb - Forum TNT / Satellite / Réception
- Court circuit LNB - Forum TNT / Satellite / Réception
- Surcharge antenne - Forum TNT / Satellite / Réception
- Operator openai - Accueil - Intelligence artificielle
- Surcharge du circuit LNB - Forum TNT / Satellite / Réception
1 réponse
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.