Skip to main content

Protéger les classes contre la copie ou l’assignation en C++

· One min read

Pour protéger les classes contre la copie, il suffit de déclarer le constructeurs de copie en private. Une macro peut être définie car le principe est le même pour toutes les classes.

#define DECLARE_NO_COPY_CLASS(classname)      private:                                      classname(const classname&);#endif

De même pour les protéger contre l’assignation, on peut déclarer la surcharge de l’opérateur = comme étant private.

#define DECLARE_NO_ASSIGN_CLASS(classname)      private:                                        classname& operator=(const classname&);#endif