Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
'identificador' : no hay un constructor de copias disponible o éste se declaró como 'explicit'
Observaciones
Un constructor de copias inicializa un objeto a partir de otro objeto del mismo tipo. (Realiza una copia del objeto) El compilador genera un constructor de copias predeterminado si no se define ningún constructor.
Para corregir este error
El problema puede producirse cuando se intenta copiar una clase cuyo constructor de copias es
private. En la mayoría de los casos, no debe copiarse una clase que tenga un constructor de copiasprivate. Una técnica de programación común consiste en declarar un constructor de copiasprivatepara impedir el uso directo de una clase. La clase puede quedar inservible o requerir otra clase para poder funcionar correctamente.Si determina que es seguro utilizar una clase que tenga un constructor de copias
private, derive una nueva clase a partir de la clase que tiene el constructorprivatey proporcione un constructor de copiaspublicoprotecteden la clase nueva. Utilice la clase derivada en lugar de la original.El problema puede producirse cuando se trata de copiar una clase cuyo constructor de copias es explícito. Declarar un constructor de copias como
explicitimpide que se pasen objetos de una clase a las funciones o que se devuelvan objetos de una clase desde las funciones. Para obtener más información sobre los constructores explícitos, consulte Conversiones de los tipos definidos por el usuario.El problema puede producirse cuando intenta copiar una instancia de la clase declarada como
constutilizando un constructor de copias que no toma un parámetro de referenciaconst. Declare el constructor de copias con una referencia de tipoconsten lugar de con una referencia de otro tipo.