Conozco la regla general de C++ cuando agrega cctor, dtor u op = a su clase, necesita agregar los otros dos también para que su clase funcione correctamente en todas las circunstancias.Copiar constructor, destructor y operador de asignación. ¿Cuándo no los necesitamos a todos?
¿Hay algún caso cuando no necesita proporcionar los tres, solo uno o dos de ellos?
¿Por qué el C++ no requiere que se agreguen todos si agrega uno de ellos a su clase?
EDIT1:
Usted ha mencionado ejemplos cuando no sólo no es necesario que algunos de ellos, pero no quieren tener ellos por lo que quieren que sean privadas o protegidas. Pero aún necesita escribirlos en su código incluso con cuerpos vacíos.
La única razón válida para no tenerlas todas cuando haces una clase polimórfica al agregar un destructor virtual con el cuerpo vacío. Pero tan pronto como escriba algo en el cuerpo del destructor, debería considerar escribir algo en el cuerpo del cctor y op = también.
Estoy buscando ejemplos cuando no necesita escribir los 3 métodos y puede omitir algunos de ellos sin causar errores en su clase, incluso si un novato está utilizando su clase. :)
+1 por mencionar tipos no copiables. –
Si realmente desea que un tipo no se pueda copiar, es posible que desee escribir el cctor y op = como privado o protegido. – Calmarius