Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
'identificateur' : pas de constructeur de copie disponible ou le constructeur de copie est déclaré 'explicit'
Remarques
Un constructeur de copie initialise un objet d'un autre objet de même type. (Il effectue une copie de l’objet.) Le compilateur génère un constructeur de copie par défaut si vous ne définissez aucun constructeur.
Pour corriger cette erreur
Le problème peut se produire lors d'une tentative de copie d'une classe dont le constructeur de copie est
private. Le plus souvent, une classe qui a un constructeur de copieprivatene doit pas être copiée. Une technique de programmation classique déclare un constructeur de copieprivatepour éviter l'utilisation directe d'une classe. La classe peut être inutile en tant que telle ou nécessiter une autre classe afin de fonctionner correctement.Si vous pensez que l'utilisation d'une classe qui a un constructeur de copie
privatene présente aucun risque, dérivez une nouvelle classe à partir de la classe ayant le constructeurprivateet mettez un constructeur de copiepublicouprotectedà la disposition de la nouvelle classe. Utilisez la classe dérivée à la place de l'original.Le problème peut se produire lors d'une tentative de copie d'une classe dont le constructeur de copie est explicite. La déclaration d'un constructeur de copie comme
explicitévite le passage ou le retour d'objets d'une classe depuis ou vers les fonctions. Pour plus d’informations sur les constructeurs explicites, consultez Conversions de types définis par l’utilisateur.Le problème peut se produire lors d'une tentative de copie d'une instance de classe déclarée
constà l'aide d'un constructeur de copie qui n'accepte pas de paramètre de référenceconst. Déclarez votre constructeur de copie avec une référence de typeconstau lieu d'une référence de type non const.