¿Qué es un constructor de copias?
Un constructor de copias es una función especial en C ++ y otros idiomas influenciados por C ++, que copia un objeto de codificación. El programador hace esto agregando la declaración del constructor de copias y haciendo referencia a un objeto. Principalmente, esto beneficia al programador al ahorrar tiempo, pero también garantiza que el programador no ingrese la codificación del objeto incorrectamente. Cuando se realiza la copia, debe tener un puntero de memoria diferente o apuntará a la misma sección a la que apunta el objeto original. Uno de los principales inconvenientes del uso de constructores de copias es que no pueden funcionar de forma independiente; Si el objeto original se borra, la copia también será. Para hacer esto, el programador primero debe usar una declaración para decirle a la codificación que realice la función de copia. El programador también debe hacer referencia a otro objeto, por lo que el objeto ya debe ser construido o habrá no forma de realizar la copia.
El principal beneficio de usar un constructor de copias es que ahorra tiempo. En lugar de tener que volver a escribir las mismas funciones y codificar nuevamente, el programador solo puede agregar una referencia y el objeto estará listo. Esto tiene otro beneficio oculto en una codificación consistente y precisa. Mientras el objeto original esté codificado correctamente, el objeto copiado también tendrá la codificación correcta. Ambos beneficios son más evidentes con objetos complejos, pero los programadores también pueden beneficiarse de copiar objetos simples.
En lenguajes C ++, muchas funciones requieren un puntero de memoria. Esto le dice a la función exactamente dónde mirar en la memoria para cierta información, o dónde puede almacenar datos. El programador debe especificar un nuevo puntero de memoria cuando se usa un constructor de copias; De lo contrario, los dos objetos usarán el mismo espacio de memoria. En la superficie, esto puede no parecer malo, pero puede LeaD a las inconsistencias. Por ejemplo, si ambos objetos comparten el mismo puntero y un objeto se usa para enviar solicitudes de préstamos mientras el objeto copiado se realiza para enviar solicitudes de tarjeta de crédito, entonces todas las solicitudes de tarjeta de crédito se almacenarán con las solicitudes de préstamo.
Los programadores deben tener cuidado de borrar un objeto, porque los objetos del constructor de copia no pueden funcionar de forma independiente. Si el programador borra el objeto original, entonces el objeto copiado no tendrá nada que hacer referencia. Sin un código para hacer referencia, el objeto copiado no podrá realizar su tarea y se volverá inútil.