Bonnes Pratiques

Surcharge des opérateurs : bonnes pratiques

C++, Opérateurs, Bonnes Pratiques

operator= #

Membre obligatoire

Le standard C++ exige que l’operator= soit défini comme une fonction membre de la classe.

Il doit retourner *this pour permettre le chaînage (a = b = c).

Il doit aussi empêcher l’auto-affectation. Sans cette condition, alors on a un UB (Undefined Behavior).

NamedPoint& NamedPoint::operator=(const NamedPoint& p)
{
    if (this == &p)
    {
      return *this;
    }

    ...

    return *this;
}
📝 À NOTER
Cet opérateur est obligatoire pour les classes qui gèrent des ressources dynamiques (pointeurs bruts, allocations). Dans le cas contraire, alors operator= = default est suffisant.

operator<< et operator>> #

Non-membres obligatoires

...

© HE-Arc 2020-2026 - Tous droits réservés.