Sé por qué hacer que el constructor predeterminado y el constructor de copia sean privados para implementar la clase singleton en C++. Pero lo que no entiendo es por qué hacer que el operador de asignación de copias sea privado, porque para empezar no habrá dos objetos existentes.¿Por qué sobrecargar el operador de asignación de copia para una clase singleton en C++?
Mi exploración trae dos puntos:
Según Alexandrescu en "Modern C++ Diseño", el operador de asignación a ser privados para evitar la auto-asignación.
En segundo lugar, de acuerdo con rule of three, si se define una de Héctor, Héctor copia y operador de asignación para una clase, debe definir explícitamente los tres. Entonces, ¿es cuestión de seguir esta regla solamente?
Entonces, ¿cuál es su opinión sobre esto?
¡No estoy cuestionando la explicación de Alexandrescu aquí! Quiero saber si hay una razón técnica o simplemente para informar al programador cliente que la asignación se previene. Porque si no declaramos op = entonces las construcciones de programadores como p1 = p2 pasarían silenciosamente. –
Si usa un Singleton, entonces su diseño ya es tan malo, es ridículo que intente seguir la Regla de los Tres. – Puppy
¿Realmente quieres permitir que compile? 'S :: getInstance() = S :: getInstance();' –