Question Lngage C++
Résolu
simyamsmasters
Messages postés
48
Statut
Membre
-
simyamsmasters Messages postés 48 Statut Membre -
simyamsmasters Messages postés 48 Statut Membre -
Bonjour a tous,
J aimerias savoir pourquoi est ce que a la fin de l instruction (operator=) nous somme toujours obligé de retourner l objet a lui meme.
Exemple:
ZString ZString::operator= (const ZString &chaine)
{
delete[] m_chaine;
m_chaine=copie(chaine.m_chaine);
m_longueur=chaine.m_longueur;
return *this;
}
Merci de bien vouloir me repondre;
J aimerias savoir pourquoi est ce que a la fin de l instruction (operator=) nous somme toujours obligé de retourner l objet a lui meme.
Exemple:
ZString ZString::operator= (const ZString &chaine)
{
delete[] m_chaine;
m_chaine=copie(chaine.m_chaine);
m_longueur=chaine.m_longueur;
return *this;
}
Merci de bien vouloir me repondre;
5 réponses
Salut,
J aimerias savoir pourquoi est ce que a la fin de l instruction (operator=) nous somme toujours obligé de retourner l objet a lui meme.
Pour pouvoir enchaîner les affectations. Par exemple : objet1=objet2=objet3.
Cdlt
J aimerias savoir pourquoi est ce que a la fin de l instruction (operator=) nous somme toujours obligé de retourner l objet a lui meme.
Pour pouvoir enchaîner les affectations. Par exemple : objet1=objet2=objet3.
Cdlt
objet1=objet2=objet3
Pour que cette instruction marche, il faut que tu renvoies nécessairement l'objet lui-même.
Ainsi cela appellera :
objet1.operator=(objet2.operator=(objet3))
Si objet2.operator=(objet3) ne renvoie pas l'objet, l'affectation en cascade ne marchera pas.
J'espère avoir été plus clair.
Pour que cette instruction marche, il faut que tu renvoies nécessairement l'objet lui-même.
Ainsi cela appellera :
objet1.operator=(objet2.operator=(objet3))
Si objet2.operator=(objet3) ne renvoie pas l'objet, l'affectation en cascade ne marchera pas.
J'espère avoir été plus clair.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question