Un constructor de copia siempre toma un parámetro, la referencia a un tipo al que pertenece, no tal vez otros parámetros pero necesidad tienen valores por defecto.
Se llama a un constructor de copia como una función de copia y el propósito del constructor de copia es crear un objeto de un tipo utilizando un objeto del mismo tipo como base para la creación del nuevo tipo.
especificar la norma es que el constructor de copia sea del tipo:
T(const &T obj);
Básicamente, esto permite la creación de objetos temporales durante la llamada a las funciones por valor o devolver los objetos del tipo por valor.
Esta sintaxis facilita la creación de un nuevo objeto como:
T obj1(obj2); <--------- Direct Initialization
T obj1 = obj2; <--------- Copy Initialization
Si los argumentos adicionales que se pasan al constructor de copia no tendría el mandato de tener valores por defecto entonces la construcción de objetos utilizando la sintaxis anterior no sería posible .
ahí la condición estricta,
no tal vez otros parámetros a un constructor de copia, pero que necesidad tienen valores por defecto.
¿Qué quieres decir? – kennytm
X (const X y copy_from_me, int = 10); ¿y si escribo X (const X y copy_from_me, int); – haris
+1 para la pregunta interesante, debe poner un poco más de esfuerzo en la presentación la próxima vez :) –