Para no permitir copiar o asignar una clase, es práctica común hacer que el constructor de copia y el operador de asignación sean privados. Tanto Google como Qt tienen macros para que esto sea fácil y visible. Estas macros son:Macros para no permitir la copia y asignación de clase. Google -vs- Qt
Google:
#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
TypeName(const TypeName&); \
void operator=(const TypeName&)
Qt:
#define Q_DISABLE_COPY(Class) \
Class(const Class &); \
Class &operator=(const Class &);
Preguntas: ¿Por qué las firmas de los dos operadores de asignación diferente? Parece que la versión de Qt es correcta. ¿Cuál es la diferencia práctica entre los dos?
Otra diferencia mínima es que la adaptación de Qt termina con un punto y coma. – Dennis