Tout d'abord, l'opérateur +=
est un opérateur d'affectation (affectation composée). Son comportement est cependant équivalent à y = y + x
combinaison (sauf y
est évaluée une seule fois).
En second lieu, quand il est utilisé comme opérande de l'opérateur d'addition (y compris l'ERS de +=
comme dans votre exemple) x
participe à l'expression en tant que rvalue, par exemple, il est implicitement soumis à ce qu'on appelle lvalue à rvalue conversion. Cette conversion supprime immédiatement const
, car les valeurs de type hors classe (int
dans votre cas) ne peuvent pas être qualifiées pour le certificat de cv.
Merci, exactement le genre d'explication que je cherchais. –