7
votes

C ++ "constructeur invalide"

Lorsque j'essaie de créer une classe qui a un constructeur qui prend un objet de cette classe par valeur, comme par exemple: xxx pré>

puis g ++ se plaint le suivant pour le second constructeur: P>

error: invalid constructor; you probably meant ‘X (const X&)’


1 commentaires

Comment voudriez-vous invoquer ce constructeur?


3 Réponses :


6
votes

car xxx

nécessite un constructeur de copie. Je lui suis-je reconsive. C'est-à-dire quand ça se termine ?!


0 commentaires

1
votes

Vous essayez d'implémenter un constructeur de copie qui ne fonctionne que en transmettant une référence à l'objet que vous souhaitez copier.


0 commentaires

18
votes

Vous essayez de créer un constructeur de copie et un constructeur de copie doit prendre une référence. Sinon, lorsque vous passez le X dans le constructeur par la valeur, le compilateur devra créer une copie temporaire de X, pour laquelle il devra appeler le constructeur de copie, pour lequel il aura besoin de créer une copie temporaire .... annonce infinium.

Un constructeur de copie doit donc prendre son argument en se référant à la prévention de la récursion infinie.


0 commentaires